From 0e3fd4aad2975b5b0ddd9a2c1019390ee4a3db08 Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Tue, 19 May 2026 09:35:03 +0200 Subject: [PATCH] Bump GCP resource detector to latest So we can drop our own entry point. --- dev-requirements.txt | 2 +- docs/reference/edot-python/configuration.md | 4 ++-- pyproject.toml | 3 +-- src/elasticotel/distro/resource_detectors.py | 6 +++--- tests/distro/test_distro.py | 2 +- tests/distro/test_resource_detectors.py | 6 +++--- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index 0e01a561..11e9ff66 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -72,7 +72,7 @@ opentelemetry-resource-detector-azure==0.1.5 # via elastic-opentelemetry (pyproject.toml) opentelemetry-resource-detector-containerid==0.61b0 # via elastic-opentelemetry (pyproject.toml) -opentelemetry-resourcedetector-gcp==1.8.0a0 +opentelemetry-resourcedetector-gcp==1.12.0a0 # via elastic-opentelemetry (pyproject.toml) opentelemetry-sdk==1.40.0 # via diff --git a/docs/reference/edot-python/configuration.md b/docs/reference/edot-python/configuration.md index 50894310..7fda2e53 100644 --- a/docs/reference/edot-python/configuration.md +++ b/docs/reference/edot-python/configuration.md @@ -229,7 +229,7 @@ EDOT Python uses different defaults than OpenTelemetry Python for the following | Option | EDOT Python default | OpenTelemetry Python default | Notes | |---|---|---|---| -| `OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` | `process_runtime,os,otel,telemetry_distro,service_instance,containerid,_gcp,aws_ec2,aws_ecs,aws_elastic_beanstalk,azure_app_service,azure_vm` | `otel` | | +| `OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` | `process_runtime,os,otel,telemetry_distro,service_instance,containerid,gcp_resource_detector,aws_ec2,aws_ecs,aws_elastic_beanstalk,azure_app_service,azure_vm` | `otel` | | | `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | `DELTA` | `CUMULATIVE` | | | `OTEL_LOG_LEVEL` | `warn` | | {applies_to}`edot_python: ga 1.9.0` | | `OTEL_METRICS_EXEMPLAR_FILTER` | `always_off` | `trace_based` | | @@ -237,7 +237,7 @@ EDOT Python uses different defaults than OpenTelemetry Python for the following | `OTEL_TRACES_SAMPLER_ARG` | `1.0` | | {applies_to}`edot_python: ga 1.6.0`| :::{note} -`OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` cloud resource detectors are dynamically set. When running in a Kubernetes Pod it will be set to `process_runtime,os,otel,telemetry_distro,service_instance,_gcp,aws_eks`. +`OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` cloud resource detectors are dynamically set. When running in a Kubernetes Pod it will be set to `process_runtime,os,otel,telemetry_distro,service_instance,gcp_resource_detector,aws_eks`. ::: :::{note} diff --git a/pyproject.toml b/pyproject.toml index e5e66c7f..496e6c0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "opentelemetry-exporter-otlp == 1.40.0", "opentelemetry-instrumentation == 0.61b0", "opentelemetry-instrumentation-system-metrics == 0.61b0", - "opentelemetry-resourcedetector-gcp ~= 1.8.0a0", + "opentelemetry-resourcedetector-gcp ~= 1.12.0a0", "opentelemetry-resource-detector-azure ~= 0.1.5", "opentelemetry-resource-detector-containerid == 0.61b0", "opentelemetry-sdk == 1.40.0", @@ -55,7 +55,6 @@ distro = "elasticotel.distro:ElasticOpenTelemetryDistro" process_runtime = "elasticotel.sdk.resources:ProcessRuntimeResourceDetector" telemetry_distro = "elasticotel.sdk.resources:TelemetryDistroResourceDetector" service_instance = "elasticotel.sdk.resources:ServiceInstanceResourceDetector" -_gcp = "opentelemetry.resourcedetector.gcp_resource_detector._detector:GoogleCloudResourceDetector" [project.entry-points.opentelemetry_traces_sampler] experimental_composite_parentbased_traceidratio = "elasticotel.sdk.sampler:DefaultSampler" diff --git a/src/elasticotel/distro/resource_detectors.py b/src/elasticotel/distro/resource_detectors.py index 69fc37bb..fe0772c8 100644 --- a/src/elasticotel/distro/resource_detectors.py +++ b/src/elasticotel/distro/resource_detectors.py @@ -18,10 +18,10 @@ AWS_LAMBDA_DETECTORS = ["aws_lambda"] AZURE_FUNCTIONS_DETECTORS = ["azure_functions"] -GCP_CLOUD_RUN_DETECTORS = ["_gcp"] -KUBERNETES_DETECTORS = ["_gcp", "aws_eks"] +GCP_CLOUD_RUN_DETECTORS = ["gcp_resource_detector"] +KUBERNETES_DETECTORS = ["gcp_resource_detector", "aws_eks"] OTHER_CLOUD_DETECTORS = [ - "_gcp", + "gcp_resource_detector", "aws_ec2", "aws_ecs", "aws_elastic_beanstalk", diff --git a/tests/distro/test_distro.py b/tests/distro/test_distro.py index 106d3b3c..670d75be 100644 --- a/tests/distro/test_distro.py +++ b/tests/distro/test_distro.py @@ -69,7 +69,7 @@ def test_default_configuration(self): self.assertEqual("otlp", os.environ.get(OTEL_LOGS_EXPORTER)) self.assertEqual("grpc", os.environ.get(OTEL_EXPORTER_OTLP_PROTOCOL)) self.assertEqual( - "process_runtime,os,otel,telemetry_distro,service_instance,containerid,_gcp,aws_ec2,aws_ecs,aws_elastic_beanstalk,azure_app_service,azure_vm", + "process_runtime,os,otel,telemetry_distro,service_instance,containerid,gcp_resource_detector,aws_ec2,aws_ecs,aws_elastic_beanstalk,azure_app_service,azure_vm", os.environ.get(OTEL_EXPERIMENTAL_RESOURCE_DETECTORS), ) self.assertEqual("always_off", os.environ.get(OTEL_METRICS_EXEMPLAR_FILTER)) diff --git a/tests/distro/test_resource_detectors.py b/tests/distro/test_resource_detectors.py index 872036d6..a09a4239 100644 --- a/tests/distro/test_resource_detectors.py +++ b/tests/distro/test_resource_detectors.py @@ -33,17 +33,17 @@ def test_azure_functions(self): @mock.patch.dict("os.environ", {"K_CONFIGURATION": "cloudrun"}, clear=True) def test_gcp_cloud_run(self): resource_detectors = get_cloud_resource_detectors() - self.assertEqual(resource_detectors, ["_gcp"]) + self.assertEqual(resource_detectors, ["gcp_resource_detector"]) @mock.patch.dict("os.environ", {"KUBERNETES_SERVICE_HOST": "k8s"}, clear=True) def test_kubernetes_pod(self): resource_detectors = get_cloud_resource_detectors() - self.assertEqual(resource_detectors, ["_gcp", "aws_eks"]) + self.assertEqual(resource_detectors, ["gcp_resource_detector", "aws_eks"]) @mock.patch.dict("os.environ", {}, clear=True) def test_other_cloud_detectors(self): resource_detectors = get_cloud_resource_detectors() self.assertEqual( resource_detectors, - ["_gcp", "aws_ec2", "aws_ecs", "aws_elastic_beanstalk", "azure_app_service", "azure_vm"], + ["gcp_resource_detector", "aws_ec2", "aws_ecs", "aws_elastic_beanstalk", "azure_app_service", "azure_vm"], )