From 1870c4a573a40ed2877cda4a3aa82ae89ffb6aba Mon Sep 17 00:00:00 2001 From: Shevis Johnson Date: Fri, 21 Apr 2023 12:19:24 -0700 Subject: [PATCH 1/3] Replace deprecated BoundedDict with BoundedAttributes and bump minimum version requirement for opentelemetry-api to 1.4 for opentelemetry-exporter-gcp-trace --- e2e-test-server/constraints.txt | 4 ++-- opentelemetry-exporter-gcp-monitoring/setup.cfg | 4 ++-- opentelemetry-exporter-gcp-trace/setup.cfg | 4 ++-- .../src/opentelemetry/exporter/cloud_trace/__init__.py | 6 +++--- opentelemetry-propagator-gcp/setup.cfg | 2 +- opentelemetry-resourcedetector-gcp/setup.cfg | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/e2e-test-server/constraints.txt b/e2e-test-server/constraints.txt index 1c5154da..247c9678 100644 --- a/e2e-test-server/constraints.txt +++ b/e2e-test-server/constraints.txt @@ -16,8 +16,8 @@ Jinja2==2.11.3 libcst==0.3.18 MarkupSafe==1.1.1 mypy-extensions==0.4.3 -opentelemetry-api==1.1.0 -opentelemetry-sdk==1.1.0 +opentelemetry-api==1.4.0 +opentelemetry-sdk==1.4.0 opentelemetry-semantic-conventions==0.20b0 packaging==20.9 proto-plus==1.18.1 diff --git a/opentelemetry-exporter-gcp-monitoring/setup.cfg b/opentelemetry-exporter-gcp-monitoring/setup.cfg index b15c95db..abb7de46 100644 --- a/opentelemetry-exporter-gcp-monitoring/setup.cfg +++ b/opentelemetry-exporter-gcp-monitoring/setup.cfg @@ -27,8 +27,8 @@ package_dir= packages=find_namespace: install_requires = google-cloud-monitoring ~= 2.0 - opentelemetry-api ~= 1.0 - opentelemetry-sdk ~= 1.0 + opentelemetry-api ~= 1.4 + opentelemetry-sdk ~= 1.4 opentelemetry-resourcedetector-gcp >= 1.5.0dev0, == 1.* [options.packages.find] diff --git a/opentelemetry-exporter-gcp-trace/setup.cfg b/opentelemetry-exporter-gcp-trace/setup.cfg index 511f5f75..9d0b4d65 100644 --- a/opentelemetry-exporter-gcp-trace/setup.cfg +++ b/opentelemetry-exporter-gcp-trace/setup.cfg @@ -27,8 +27,8 @@ package_dir= packages=find_namespace: install_requires = google-cloud-trace ~= 1.1 - opentelemetry-api ~= 1.0 - opentelemetry-sdk ~= 1.0 + opentelemetry-api ~= 1.4 + opentelemetry-sdk ~= 1.4 opentelemetry-resourcedetector-gcp >= 1.5.0dev0, == 1.* [options.packages.find] diff --git a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py index 0d1e0ff9..ea25d26e 100644 --- a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py +++ b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py @@ -97,6 +97,7 @@ Timestamp, ) from google.rpc import code_pb2, status_pb2 +from opentelemetry.attributes import BoundedAttributes from opentelemetry.exporter.cloud_trace.environment_variables import ( OTEL_EXPORTER_GCP_TRACE_PROJECT_ID, OTEL_EXPORTER_GCP_TRACE_RESOURCE_REGEX, @@ -115,7 +116,6 @@ SpanExporter, SpanExportResult, ) -from opentelemetry.sdk.util import BoundedDict from opentelemetry.trace import format_span_id, format_trace_id from opentelemetry.trace.status import StatusCode from opentelemetry.util import types @@ -476,9 +476,9 @@ def _extract_attributes( add_agent_attr: bool = False, ) -> trace_types.Span.Attributes: """Convert span.attributes to dict.""" - attributes_dict: BoundedDict[ + attributes_dict: BoundedAttributes[ str, trace_types.AttributeValue - ] = BoundedDict(num_attrs_limit) + ] = BoundedAttributes(num_attrs_limit) invalid_value_dropped_count = 0 for ot_key, ot_value in attrs.items() if attrs else []: key = _truncate_str(ot_key, MAX_ATTR_KEY_BYTES)[0] diff --git a/opentelemetry-propagator-gcp/setup.cfg b/opentelemetry-propagator-gcp/setup.cfg index f3ab16a3..82fe013d 100644 --- a/opentelemetry-propagator-gcp/setup.cfg +++ b/opentelemetry-propagator-gcp/setup.cfg @@ -26,7 +26,7 @@ package_dir= =src packages=find_namespace: install_requires = - opentelemetry-api ~= 1.0 + opentelemetry-api ~= 1.4 [options.packages.find] where = src diff --git a/opentelemetry-resourcedetector-gcp/setup.cfg b/opentelemetry-resourcedetector-gcp/setup.cfg index e341f55b..5c64ad3d 100644 --- a/opentelemetry-resourcedetector-gcp/setup.cfg +++ b/opentelemetry-resourcedetector-gcp/setup.cfg @@ -26,8 +26,8 @@ package_dir= =src packages=find_namespace: install_requires = - opentelemetry-api ~= 1.0 - opentelemetry-sdk ~= 1.0 + opentelemetry-api ~= 1.4 + opentelemetry-sdk ~= 1.4 requests ~= 2.24 # TODO: remove when Python 3.7 is dropped typing_extensions ~= 4.0 From 768965cfde456e1734c83a95edc61a99d46177b9 Mon Sep 17 00:00:00 2001 From: Shevis Johnson Date: Mon, 24 Apr 2023 11:58:42 -0700 Subject: [PATCH 2/3] Only bump opentelemetry-api version in opentelemetry-exporter-gcp-trace --- e2e-test-server/constraints.txt | 2 +- opentelemetry-exporter-gcp-monitoring/setup.cfg | 4 ++-- opentelemetry-exporter-gcp-trace/setup.cfg | 2 +- opentelemetry-propagator-gcp/setup.cfg | 2 +- opentelemetry-resourcedetector-gcp/setup.cfg | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/e2e-test-server/constraints.txt b/e2e-test-server/constraints.txt index 247c9678..11b08b70 100644 --- a/e2e-test-server/constraints.txt +++ b/e2e-test-server/constraints.txt @@ -17,7 +17,7 @@ libcst==0.3.18 MarkupSafe==1.1.1 mypy-extensions==0.4.3 opentelemetry-api==1.4.0 -opentelemetry-sdk==1.4.0 +opentelemetry-sdk==1.1.0 opentelemetry-semantic-conventions==0.20b0 packaging==20.9 proto-plus==1.18.1 diff --git a/opentelemetry-exporter-gcp-monitoring/setup.cfg b/opentelemetry-exporter-gcp-monitoring/setup.cfg index abb7de46..b15c95db 100644 --- a/opentelemetry-exporter-gcp-monitoring/setup.cfg +++ b/opentelemetry-exporter-gcp-monitoring/setup.cfg @@ -27,8 +27,8 @@ package_dir= packages=find_namespace: install_requires = google-cloud-monitoring ~= 2.0 - opentelemetry-api ~= 1.4 - opentelemetry-sdk ~= 1.4 + opentelemetry-api ~= 1.0 + opentelemetry-sdk ~= 1.0 opentelemetry-resourcedetector-gcp >= 1.5.0dev0, == 1.* [options.packages.find] diff --git a/opentelemetry-exporter-gcp-trace/setup.cfg b/opentelemetry-exporter-gcp-trace/setup.cfg index 9d0b4d65..02d64630 100644 --- a/opentelemetry-exporter-gcp-trace/setup.cfg +++ b/opentelemetry-exporter-gcp-trace/setup.cfg @@ -28,7 +28,7 @@ packages=find_namespace: install_requires = google-cloud-trace ~= 1.1 opentelemetry-api ~= 1.4 - opentelemetry-sdk ~= 1.4 + opentelemetry-sdk ~= 1.0 opentelemetry-resourcedetector-gcp >= 1.5.0dev0, == 1.* [options.packages.find] diff --git a/opentelemetry-propagator-gcp/setup.cfg b/opentelemetry-propagator-gcp/setup.cfg index 82fe013d..f3ab16a3 100644 --- a/opentelemetry-propagator-gcp/setup.cfg +++ b/opentelemetry-propagator-gcp/setup.cfg @@ -26,7 +26,7 @@ package_dir= =src packages=find_namespace: install_requires = - opentelemetry-api ~= 1.4 + opentelemetry-api ~= 1.0 [options.packages.find] where = src diff --git a/opentelemetry-resourcedetector-gcp/setup.cfg b/opentelemetry-resourcedetector-gcp/setup.cfg index 5c64ad3d..e341f55b 100644 --- a/opentelemetry-resourcedetector-gcp/setup.cfg +++ b/opentelemetry-resourcedetector-gcp/setup.cfg @@ -26,8 +26,8 @@ package_dir= =src packages=find_namespace: install_requires = - opentelemetry-api ~= 1.4 - opentelemetry-sdk ~= 1.4 + opentelemetry-api ~= 1.0 + opentelemetry-sdk ~= 1.0 requests ~= 2.24 # TODO: remove when Python 3.7 is dropped typing_extensions ~= 4.0 From 97b09defd2584d4d39e6d9bb806d43148cdd215d Mon Sep 17 00:00:00 2001 From: Shevis Johnson Date: Tue, 25 Apr 2023 15:43:11 -0700 Subject: [PATCH 3/3] Add changelog entry and make BoundedAttributes mutable --- opentelemetry-exporter-gcp-trace/CHANGELOG.md | 2 ++ .../src/opentelemetry/exporter/cloud_trace/__init__.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/opentelemetry-exporter-gcp-trace/CHANGELOG.md b/opentelemetry-exporter-gcp-trace/CHANGELOG.md index 98c4a9bd..26e5911d 100644 --- a/opentelemetry-exporter-gcp-trace/CHANGELOG.md +++ b/opentelemetry-exporter-gcp-trace/CHANGELOG.md @@ -4,6 +4,8 @@ - Add support for Python 3.11 ([#240](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/240)) +- Upgrade `opentelemetry-api` dependency to version 1.4 or newer + ([#238](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/238)) ## Version 1.4.0 diff --git a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py index ea25d26e..dddc32a5 100644 --- a/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py +++ b/opentelemetry-exporter-gcp-trace/src/opentelemetry/exporter/cloud_trace/__init__.py @@ -478,7 +478,7 @@ def _extract_attributes( """Convert span.attributes to dict.""" attributes_dict: BoundedAttributes[ str, trace_types.AttributeValue - ] = BoundedAttributes(num_attrs_limit) + ] = BoundedAttributes(num_attrs_limit, immutable=False) invalid_value_dropped_count = 0 for ot_key, ot_value in attrs.items() if attrs else []: key = _truncate_str(ot_key, MAX_ATTR_KEY_BYTES)[0]