Skip to content

Commit e997cf8

Browse files
authored
Bump OTel Dependency Versions to 1.33.0/0.54b0 (#388)
## What does this pull request do? Bumps our OTel Dependency versions to [1.33.0/0.54b0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.33.0) to support compatability with third-party AI Instrumentation libraries/frameworks such as OpenInference, Traceloop/Openllmetry, and OpenLit. We do not bump to the latest upstream version [1.34.0/0.55b0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.34.0) because that release includes `BatchLogRecordProcessor` refactoring which is not compatible with our Caton changes. By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
1 parent abe6c6b commit e997cf8

File tree

4 files changed

+71
-64
lines changed

4 files changed

+71
-64
lines changed

aws-opentelemetry-distro/pyproject.toml

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -24,61 +24,61 @@ classifiers = [
2424
]
2525

2626
dependencies = [
27-
"opentelemetry-api == 1.27.0",
28-
"opentelemetry-sdk == 1.27.0",
29-
"opentelemetry-exporter-otlp-proto-grpc == 1.27.0",
30-
"opentelemetry-exporter-otlp-proto-http == 1.27.0",
31-
"opentelemetry-propagator-b3 == 1.27.0",
32-
"opentelemetry-propagator-jaeger == 1.27.0",
33-
"opentelemetry-exporter-otlp-proto-common == 1.27.0",
27+
"opentelemetry-api == 1.33.0",
28+
"opentelemetry-sdk == 1.33.0",
29+
"opentelemetry-exporter-otlp-proto-grpc == 1.33.0",
30+
"opentelemetry-exporter-otlp-proto-http == 1.33.0",
31+
"opentelemetry-propagator-b3 == 1.33.0",
32+
"opentelemetry-propagator-jaeger == 1.33.0",
33+
"opentelemetry-exporter-otlp-proto-common == 1.33.0",
3434
"opentelemetry-sdk-extension-aws == 2.0.2",
3535
"opentelemetry-propagator-aws-xray == 1.0.1",
36-
"opentelemetry-distro == 0.48b0",
37-
"opentelemetry-propagator-ot-trace == 0.48b0",
38-
"opentelemetry-instrumentation == 0.48b0",
39-
"opentelemetry-instrumentation-aws-lambda == 0.48b0",
40-
"opentelemetry-instrumentation-aio-pika == 0.48b0",
41-
"opentelemetry-instrumentation-aiohttp-client == 0.48b0",
42-
"opentelemetry-instrumentation-aiopg == 0.48b0",
43-
"opentelemetry-instrumentation-asgi == 0.48b0",
44-
"opentelemetry-instrumentation-asyncpg == 0.48b0",
45-
"opentelemetry-instrumentation-boto == 0.48b0",
46-
"opentelemetry-instrumentation-boto3sqs == 0.48b0",
47-
"opentelemetry-instrumentation-botocore == 0.48b0",
48-
"opentelemetry-instrumentation-celery == 0.48b0",
49-
"opentelemetry-instrumentation-confluent-kafka == 0.48b0",
50-
"opentelemetry-instrumentation-dbapi == 0.48b0",
51-
"opentelemetry-instrumentation-django == 0.48b0",
52-
"opentelemetry-instrumentation-elasticsearch == 0.48b0",
53-
"opentelemetry-instrumentation-falcon == 0.48b0",
54-
"opentelemetry-instrumentation-fastapi == 0.48b0",
55-
"opentelemetry-instrumentation-flask == 0.48b0",
56-
"opentelemetry-instrumentation-grpc == 0.48b0",
57-
"opentelemetry-instrumentation-httpx == 0.48b0",
58-
"opentelemetry-instrumentation-jinja2 == 0.48b0",
59-
"opentelemetry-instrumentation-kafka-python == 0.48b0",
60-
"opentelemetry-instrumentation-logging == 0.48b0",
61-
"opentelemetry-instrumentation-mysql == 0.48b0",
62-
"opentelemetry-instrumentation-mysqlclient == 0.48b0",
63-
"opentelemetry-instrumentation-pika == 0.48b0",
64-
"opentelemetry-instrumentation-psycopg2 == 0.48b0",
65-
"opentelemetry-instrumentation-pymemcache == 0.48b0",
66-
"opentelemetry-instrumentation-pymongo == 0.48b0",
67-
"opentelemetry-instrumentation-pymysql == 0.48b0",
68-
"opentelemetry-instrumentation-pyramid == 0.48b0",
69-
"opentelemetry-instrumentation-redis == 0.48b0",
70-
"opentelemetry-instrumentation-remoulade == 0.48b0",
71-
"opentelemetry-instrumentation-requests == 0.48b0",
72-
"opentelemetry-instrumentation-sqlalchemy == 0.48b0",
73-
"opentelemetry-instrumentation-sqlite3 == 0.48b0",
74-
"opentelemetry-instrumentation-starlette == 0.48b0",
75-
"opentelemetry-instrumentation-system-metrics == 0.48b0",
76-
"opentelemetry-instrumentation-tornado == 0.48b0",
77-
"opentelemetry-instrumentation-tortoiseorm == 0.48b0",
78-
"opentelemetry-instrumentation-urllib == 0.48b0",
79-
"opentelemetry-instrumentation-urllib3 == 0.48b0",
80-
"opentelemetry-instrumentation-wsgi == 0.48b0",
81-
"opentelemetry-instrumentation-cassandra == 0.48b0",
36+
"opentelemetry-distro == 0.54b0",
37+
"opentelemetry-propagator-ot-trace == 0.54b0",
38+
"opentelemetry-instrumentation == 0.54b0",
39+
"opentelemetry-instrumentation-aws-lambda == 0.54b0",
40+
"opentelemetry-instrumentation-aio-pika == 0.54b0",
41+
"opentelemetry-instrumentation-aiohttp-client == 0.54b0",
42+
"opentelemetry-instrumentation-aiopg == 0.54b0",
43+
"opentelemetry-instrumentation-asgi == 0.54b0",
44+
"opentelemetry-instrumentation-asyncpg == 0.54b0",
45+
"opentelemetry-instrumentation-boto == 0.54b0",
46+
"opentelemetry-instrumentation-boto3sqs == 0.54b0",
47+
"opentelemetry-instrumentation-botocore == 0.54b0",
48+
"opentelemetry-instrumentation-celery == 0.54b0",
49+
"opentelemetry-instrumentation-confluent-kafka == 0.54b0",
50+
"opentelemetry-instrumentation-dbapi == 0.54b0",
51+
"opentelemetry-instrumentation-django == 0.54b0",
52+
"opentelemetry-instrumentation-elasticsearch == 0.54b0",
53+
"opentelemetry-instrumentation-falcon == 0.54b0",
54+
"opentelemetry-instrumentation-fastapi == 0.54b0",
55+
"opentelemetry-instrumentation-flask == 0.54b0",
56+
"opentelemetry-instrumentation-grpc == 0.54b0",
57+
"opentelemetry-instrumentation-httpx == 0.54b0",
58+
"opentelemetry-instrumentation-jinja2 == 0.54b0",
59+
"opentelemetry-instrumentation-kafka-python == 0.54b0",
60+
"opentelemetry-instrumentation-logging == 0.54b0",
61+
"opentelemetry-instrumentation-mysql == 0.54b0",
62+
"opentelemetry-instrumentation-mysqlclient == 0.54b0",
63+
"opentelemetry-instrumentation-pika == 0.54b0",
64+
"opentelemetry-instrumentation-psycopg2 == 0.54b0",
65+
"opentelemetry-instrumentation-pymemcache == 0.54b0",
66+
"opentelemetry-instrumentation-pymongo == 0.54b0",
67+
"opentelemetry-instrumentation-pymysql == 0.54b0",
68+
"opentelemetry-instrumentation-pyramid == 0.54b0",
69+
"opentelemetry-instrumentation-redis == 0.54b0",
70+
"opentelemetry-instrumentation-remoulade == 0.54b0",
71+
"opentelemetry-instrumentation-requests == 0.54b0",
72+
"opentelemetry-instrumentation-sqlalchemy == 0.54b0",
73+
"opentelemetry-instrumentation-sqlite3 == 0.54b0",
74+
"opentelemetry-instrumentation-starlette == 0.54b0",
75+
"opentelemetry-instrumentation-system-metrics == 0.54b0",
76+
"opentelemetry-instrumentation-tornado == 0.54b0",
77+
"opentelemetry-instrumentation-tortoiseorm == 0.54b0",
78+
"opentelemetry-instrumentation-urllib == 0.54b0",
79+
"opentelemetry-instrumentation-urllib3 == 0.54b0",
80+
"opentelemetry-instrumentation-wsgi == 0.54b0",
81+
"opentelemetry-instrumentation-cassandra == 0.54b0",
8282
]
8383

8484
[project.optional-dependencies]

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/patches/_bedrock_patches.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
_AttributeMapT,
3232
_AwsSdkCallContext,
3333
_AwsSdkExtension,
34+
_BotocoreInstrumentorContext,
3435
_BotoResultT,
3536
)
3637
from opentelemetry.trace.span import Span
@@ -192,7 +193,7 @@ def extract_attributes(self, attributes: _AttributeMapT):
192193
if request_param_value:
193194
attributes[attribute_key] = request_param_value
194195

195-
def on_success(self, span: Span, result: _BotoResultT):
196+
def on_success(self, span: Span, result: _BotoResultT, instrumentor_context: _BotocoreInstrumentorContext):
196197
if self._operation_class is None:
197198
return
198199

@@ -229,7 +230,7 @@ class _BedrockExtension(_AwsSdkExtension):
229230
"""
230231

231232
# pylint: disable=no-self-use
232-
def on_success(self, span: Span, result: _BotoResultT):
233+
def on_success(self, span: Span, result: _BotoResultT, instrumentor_context: _BotocoreInstrumentorContext):
233234
# _GUARDRAIL_ID can only be retrieved from the response, not from the request
234235
guardrail_id = result.get(_GUARDRAIL_ID)
235236
if guardrail_id:
@@ -333,7 +334,7 @@ def _set_if_not_none(attributes, key, value):
333334
attributes[key] = value
334335

335336
# pylint: disable=too-many-branches
336-
def on_success(self, span: Span, result: Dict[str, Any]):
337+
def on_success(self, span: Span, result: Dict[str, Any], instrumentor_context: _BotocoreInstrumentorContext):
337338
model_id = self._call_context.params.get(_MODEL_ID)
338339

339340
if not model_id:

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/patches/_botocore_patches.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@
2525
from opentelemetry.instrumentation.botocore.extensions.lmbd import _LambdaExtension
2626
from opentelemetry.instrumentation.botocore.extensions.sns import _SnsExtension
2727
from opentelemetry.instrumentation.botocore.extensions.sqs import _SqsExtension
28-
from opentelemetry.instrumentation.botocore.extensions.types import _AttributeMapT, _AwsSdkExtension, _BotoResultT
28+
from opentelemetry.instrumentation.botocore.extensions.types import (
29+
_AttributeMapT,
30+
_AwsSdkExtension,
31+
_BotocoreInstrumentorContext,
32+
_BotoResultT,
33+
)
2934
from opentelemetry.semconv.trace import SpanAttributes
3035
from opentelemetry.trace.span import Span
3136

@@ -75,8 +80,8 @@ def patch_extract_attributes(self, attributes: _AttributeMapT):
7580

7681
old_on_success = _LambdaExtension.on_success
7782

78-
def patch_on_success(self, span: Span, result: _BotoResultT):
79-
old_on_success(self, span, result)
83+
def patch_on_success(self, span: Span, result: _BotoResultT, instrumentor_context: _BotocoreInstrumentorContext):
84+
old_on_success(self, span, result, instrumentor_context)
8085
lambda_configuration = result.get("Configuration", {})
8186
function_arn = lambda_configuration.get("FunctionArn")
8287
if function_arn:
@@ -180,8 +185,8 @@ def patch_extract_attributes(self, attributes: _AttributeMapT):
180185

181186
old_on_success = _SqsExtension.on_success
182187

183-
def patch_on_success(self, span: Span, result: _BotoResultT):
184-
old_on_success(self, span, result)
188+
def patch_on_success(self, span: Span, result: _BotoResultT, instrumentor_context: _BotocoreInstrumentorContext):
189+
old_on_success(self, span, result, instrumentor_context)
185190
queue_url = result.get("QueueUrl")
186191
if queue_url:
187192
span.set_attribute(AWS_SQS_QUEUE_URL, queue_url)
@@ -243,7 +248,7 @@ def extract_attributes(self, attributes: _AttributeMapT):
243248
attributes[AWS_SECRETSMANAGER_SECRET_ARN] = secret_id
244249

245250
# pylint: disable=no-self-use
246-
def on_success(self, span: Span, result: _BotoResultT):
251+
def on_success(self, span: Span, result: _BotoResultT, instrumentor_context: _BotocoreInstrumentorContext):
247252
secret_arn = result.get("ARN")
248253
if secret_arn:
249254
span.set_attribute(AWS_SECRETSMANAGER_SECRET_ARN, secret_arn)

aws-opentelemetry-distro/tests/amazon/opentelemetry/distro/test_instrumentation_patch.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ def _test_unpatched_botocore_instrumentation(self):
147147
)
148148

149149
# BedrockRuntime
150-
self.assertFalse("bedrock-runtime" in _KNOWN_EXTENSIONS, "Upstream has added a bedrock-runtime extension")
150+
self.assertTrue("bedrock-runtime" in _KNOWN_EXTENSIONS, "Upstream has added a bedrock-runtime extension")
151151

152152
# SecretsManager
153153
self.assertFalse("secretsmanager" in _KNOWN_EXTENSIONS, "Upstream has added a SecretsManager extension")
@@ -678,6 +678,7 @@ def _do_on_success(
678678
) -> Dict[str, str]:
679679
span_mock: Span = MagicMock()
680680
mock_call_context = MagicMock()
681+
mock_instrumentor_context = MagicMock()
681682
span_attributes: Dict[str, str] = {}
682683

683684
def set_side_effect(set_key, set_value):
@@ -692,6 +693,6 @@ def set_side_effect(set_key, set_value):
692693
mock_call_context.params = params
693694

694695
extension = _KNOWN_EXTENSIONS[service_name]()(mock_call_context)
695-
extension.on_success(span_mock, result)
696+
extension.on_success(span_mock, result, mock_instrumentor_context)
696697

697698
return span_attributes

0 commit comments

Comments
 (0)