What's Changed
- fix: accept LangGraph interrupt and resume callbacks in the LangChain instrumentation, so they no longer log an
AttributeErrorwarning (#959) - fix(langchain): preserve the active agent context across LangGraph stream yields so child spans remain children of the graph's agent span while the consumer retains its original context. (#957)
- fix(langchain): set
gen_ai.tool.call.idonexecute_toolspans from LangChain'stool_call_id(requireslangchain-core >= 1.1.2, the first release that passes it to tool callbacks), add alanggraph.checkpoint_nsspan attribute, and report Anthropic TTL cache writes (ephemeral_5m_input_tokens/ephemeral_1h_input_tokens) asgen_ai.usage.cache_creation.input_tokensinstead of 0. (#945) - fix: suppress ASGI event spans independently of agent observability (#950)
- fix: require
certifi >= 2026.10.18so the Lambda layer no longer bundles the eMudhra (emSign) ECC Root CA - G3, distrusted after its intermediates were compromised (GHSA-6q48-6c7w-9gw2). (#949) - fix: on Lambda, UDP span exports larger than the 65,507 byte datagram limit are split across datagrams instead of being dropped with
Message too long; a single oversized span has its longest string attributes truncated and is marked withaws.otel.udp.truncated. (#939) - fix:
AwsAuthSessionno longer caches aNonecredential result, so a single failed credential lookup (for example an IMDS timeout, which botocore reports asNonerather than raising) no longer leaves every later OTLP export unsigned for the life of the process. (#941) - fix: honor
OTEL_EXPORTER_OTLP_LOGS_COMPRESSIONandOTEL_EXPORTER_OTLP_COMPRESSIONin the AWS OTLP logs exporter, retaining gzip as the default when neither variable is configured. (#934) - fix: with
OTEL_AWS_HTTP_OPERATION_PATHSset, child spans now inherit the overridden operation from their server span, so dependency metrics are reported under the same operation as the service metrics instead of the original span name. (#931) - feat: register
otlp/sigv4exporter entry points for logs, metrics, and traces, with optional shared and signal-specific signing service overrides, environment-configured signing regions, and botocore sessions. - revert: remove the
aws_sigv4OTLP credential-provider entry point and session factory introduced in #794. (#926) - chore: update OpenTelemetry dependencies to 1.45.1/0.66b1. The CloudWatch Logs OTLP exporter now relies on the upstream OTLP HTTP client's retry handling, which retries HTTP 429, 502, 503 and 504 and honors
Retry-After(previously 408, 429 and all 5xx were retried).requestsis now declared as a direct dependency. (#905) - fix(mcp): inject client transport info into
ClientSessionto preserve it across task and thread boundaries (#921) - feat: recognize and SigV4-sign X-Ray, CloudWatch Logs, and CloudWatch Metrics OTLP endpoints in every AWS partition: GovCloud, European Sovereign Cloud (
amazonaws.eu), ISO (c2s.ic.gov), ISO-B (sc2s.sgov.gov), ISO-E (cloud.adc-e.uk), and ISO-F (csp.hci.ic.gov), in addition to commercial and China. Agent observability default endpoints now use the partition's DNS suffix.
Upstream Components
opentelemetry-api- 1.45.1opentelemetry-sdk- 1.45.1opentelemetry-exporter-otlp-proto-grpc- 1.45.1opentelemetry-exporter-otlp-proto-http- 1.45.1opentelemetry-propagator-b3- 1.45.1opentelemetry-propagator-jaeger- 1.45.1opentelemetry-exporter-otlp-proto-common- 1.45.1opentelemetry-sdk-extension-aws- 2.1.0opentelemetry-propagator-aws-xray- 1.0.2opentelemetry-distro- 0.66b1opentelemetry-processor-baggage- 0.66b1opentelemetry-propagator-ot-trace- 0.66b1opentelemetry-instrumentation- 0.66b1opentelemetry-instrumentation-aws-lambda- 0.66b1opentelemetry-instrumentation-aio-pika- 0.66b1opentelemetry-instrumentation-aiohttp-client- 0.66b1opentelemetry-instrumentation-aiokafka- 0.66b1opentelemetry-instrumentation-aiopg- 0.66b1opentelemetry-instrumentation-asgi- 0.66b1opentelemetry-instrumentation-asyncpg- 0.66b1opentelemetry-instrumentation-boto3sqs- 0.66b1opentelemetry-instrumentation-botocore- 0.66b1opentelemetry-instrumentation-celery- 0.66b1opentelemetry-instrumentation-confluent-kafka- 0.66b1opentelemetry-instrumentation-dbapi- 0.66b1opentelemetry-instrumentation-django- 0.66b1opentelemetry-instrumentation-falcon- 0.66b1opentelemetry-instrumentation-fastapi- 0.66b1opentelemetry-instrumentation-flask- 0.66b1opentelemetry-instrumentation-grpc- 0.66b1opentelemetry-instrumentation-httpx- 0.66b1opentelemetry-instrumentation-jinja2- 0.66b1opentelemetry-instrumentation-kafka-python- 0.66b1opentelemetry-instrumentation-logging- 0.66b1opentelemetry-instrumentation-mysql- 0.66b1opentelemetry-instrumentation-mysqlclient- 0.66b1opentelemetry-instrumentation-pika- 0.66b1opentelemetry-instrumentation-psycopg2- 0.66b1opentelemetry-instrumentation-pymemcache- 0.66b1opentelemetry-instrumentation-pymongo- 0.66b1opentelemetry-instrumentation-pymysql- 0.66b1opentelemetry-instrumentation-pyramid- 0.66b1opentelemetry-instrumentation-redis- 0.66b1opentelemetry-instrumentation-remoulade- 0.66b1opentelemetry-instrumentation-requests- 0.66b1opentelemetry-instrumentation-sqlalchemy- 0.66b1opentelemetry-instrumentation-sqlite3- 0.66b1opentelemetry-instrumentation-starlette- 0.66b1opentelemetry-instrumentation-system-metrics- 0.66b1opentelemetry-instrumentation-threading- 0.66b1opentelemetry-instrumentation-tornado- 0.66b1opentelemetry-instrumentation-tortoiseorm- 0.66b1opentelemetry-instrumentation-urllib- 0.66b1opentelemetry-instrumentation-urllib3- 0.66b1opentelemetry-instrumentation-wsgi- 0.66b1opentelemetry-instrumentation-cassandra- 0.66b1cachetools- 6.2.4urllib3 >= 2.7.0; python_version >= '3.10'requests ~= 2.25certifi >= 2026.10.18protobuf- 6.33.5pyyaml- 6.0.3python-dateutil >= 2.7.0bytecode; python_version >= '3.10' and python_version < '3.12'
Release Artifacts
This release publishes to public ECR and PyPi.
- See ADOT Python auto-instrumentation Docker image v0.22.0 in our public ECR repository:
https://gallery.ecr.aws/aws-observability/adot-autoinstrumentation-python - See version 0.22.0 in our PyPi repository:
https://pypi.org/project/aws-opentelemetry-distro/
Lambda Layer
This release includes the AWS OpenTelemetry Lambda Layer for Python version 0.22.0-5861397.
Lambda Layer ARNs:
| Region | Layer ARN |
|---|---|
| af-south-1 | arn:aws:lambda:af-south-1:904233096616:layer:AWSOpenTelemetryDistroPython:27 |
| ap-east-1 | arn:aws:lambda:ap-east-1:888577020596:layer:AWSOpenTelemetryDistroPython:27 |
| ap-east-2 | arn:aws:lambda:ap-east-2:412664885777:layer:AWSOpenTelemetryDistroPython:8 |
| ap-northeast-1 | arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ap-northeast-2 | arn:aws:lambda:ap-northeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ap-northeast-3 | arn:aws:lambda:ap-northeast-3:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ap-south-1 | arn:aws:lambda:ap-south-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ap-south-2 | arn:aws:lambda:ap-south-2:796973505492:layer:AWSOpenTelemetryDistroPython:27 |
| ap-southeast-1 | arn:aws:lambda:ap-southeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:29 |
| ap-southeast-2 | arn:aws:lambda:ap-southeast-2:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ap-southeast-3 | arn:aws:lambda:ap-southeast-3:039612877180:layer:AWSOpenTelemetryDistroPython:27 |
| ap-southeast-4 | arn:aws:lambda:ap-southeast-4:713881805771:layer:AWSOpenTelemetryDistroPython:27 |
| ap-southeast-5 | arn:aws:lambda:ap-southeast-5:152034782359:layer:AWSOpenTelemetryDistroPython:18 |
| ap-southeast-6 | arn:aws:lambda:ap-southeast-6:313828097273:layer:AWSOpenTelemetryDistroPython:7 |
| ap-southeast-7 | arn:aws:lambda:ap-southeast-7:980416031188:layer:AWSOpenTelemetryDistroPython:18 |
| ca-central-1 | arn:aws:lambda:ca-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| ca-west-1 | arn:aws:lambda:ca-west-1:595944127152:layer:AWSOpenTelemetryDistroPython:18 |
| cn-north-1 | arn:aws-cn:lambda:cn-north-1:440179912924:layer:AWSOpenTelemetryDistroPython:18 |
| cn-northwest-1 | arn:aws-cn:lambda:cn-northwest-1:440180067931:layer:AWSOpenTelemetryDistroPython:18 |
| eu-central-1 | arn:aws:lambda:eu-central-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| eu-central-2 | arn:aws:lambda:eu-central-2:156041407956:layer:AWSOpenTelemetryDistroPython:27 |
| eu-north-1 | arn:aws:lambda:eu-north-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| eu-south-1 | arn:aws:lambda:eu-south-1:257394471194:layer:AWSOpenTelemetryDistroPython:27 |
| eu-south-2 | arn:aws:lambda:eu-south-2:490004653786:layer:AWSOpenTelemetryDistroPython:27 |
| eu-west-1 | arn:aws:lambda:eu-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| eu-west-2 | arn:aws:lambda:eu-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| eu-west-3 | arn:aws:lambda:eu-west-3:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| il-central-1 | arn:aws:lambda:il-central-1:746669239226:layer:AWSOpenTelemetryDistroPython:27 |
| me-central-1 | arn:aws:lambda:me-central-1:739275441131:layer:AWSOpenTelemetryDistroPython:26 |
| mx-central-1 | arn:aws:lambda:mx-central-1:610118373846:layer:AWSOpenTelemetryDistroPython:18 |
| sa-east-1 | arn:aws:lambda:sa-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| us-east-1 | arn:aws:lambda:us-east-1:615299751070:layer:AWSOpenTelemetryDistroPython:33 |
| us-east-2 | arn:aws:lambda:us-east-2:615299751070:layer:AWSOpenTelemetryDistroPython:30 |
| us-west-1 | arn:aws:lambda:us-west-1:615299751070:layer:AWSOpenTelemetryDistroPython:37 |
| us-west-2 | arn:aws:lambda:us-west-2:615299751070:layer:AWSOpenTelemetryDistroPython:37 |