diff --git a/opentelemetry-exporter-gcp-monitoring/setup.cfg b/opentelemetry-exporter-gcp-monitoring/setup.cfg index b15c95db..da804b2a 100644 --- a/opentelemetry-exporter-gcp-monitoring/setup.cfg +++ b/opentelemetry-exporter-gcp-monitoring/setup.cfg @@ -36,3 +36,9 @@ where = src [options.extras_require] test = + +[options.entry_points] +opentelemetry_metrics_exporter = + gcp_monitoring = opentelemetry.exporter.cloud_monitoring:CloudMonitoringMetricsExporter +opentelemetry_environment_variables = + gcp_monitoring = opentelemetry.exporter.cloud_monitoring.environment_variables diff --git a/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/environment_variables.py b/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/environment_variables.py new file mode 100644 index 00000000..e7f779e6 --- /dev/null +++ b/opentelemetry-exporter-gcp-monitoring/src/opentelemetry/exporter/cloud_monitoring/environment_variables.py @@ -0,0 +1,23 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +OTEL_EXPORTER_GCP_MONITORING_PROJECT_ID = ( + "OTEL_EXPORTER_GCP_MONITORING_PROJECT_ID" +) +""" +.. envvar:: OTEL_EXPORTER_GCP_MONITORING_PROJECT_ID + + GCP project ID for the exporter to send metrics to. Equivalent to constructor parameter to + :class:`opentelemetry.exporter.cloud_monitoring.CloudMonitoringMetricsExporter`. +""" diff --git a/opentelemetry-exporter-gcp-monitoring/tests/test_cloud_monitoring_auto_instrument.py b/opentelemetry-exporter-gcp-monitoring/tests/test_cloud_monitoring_auto_instrument.py new file mode 100644 index 00000000..77c12815 --- /dev/null +++ b/opentelemetry-exporter-gcp-monitoring/tests/test_cloud_monitoring_auto_instrument.py @@ -0,0 +1,37 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from unittest import TestCase + +from opentelemetry.exporter.cloud_monitoring import ( + CloudMonitoringMetricsExporter, +) + +# private import for testing only +from opentelemetry.sdk._configuration import _import_exporters + + +class TestCloudTraceAutoInstrument(TestCase): + def test_loads_cloud_trace_exporter(self): + """Test that OTel configuration internals can load the exporter from entrypoint by + name""" + _, metric_exporters, _ = _import_exporters( + trace_exporter_names=[], + log_exporter_names=[], + metric_exporter_names=["gcp_monitoring"], + ) + self.assertEqual( + metric_exporters, + {"gcp_monitoring": CloudMonitoringMetricsExporter}, + )