github aws-observability/aws-otel-python-instrumentation v0.22.0
Release v0.22.0

3 hours ago

What's Changed

  • fix: accept LangGraph interrupt and resume callbacks in the LangChain instrumentation, so they no longer log an AttributeError warning (#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.id on execute_tool spans from LangChain's tool_call_id (requires langchain-core >= 1.1.2, the first release that passes it to tool callbacks), add a langgraph.checkpoint_ns span attribute, and report Anthropic TTL cache writes (ephemeral_5m_input_tokens/ephemeral_1h_input_tokens) as gen_ai.usage.cache_creation.input_tokens instead of 0. (#945)
  • fix: suppress ASGI event spans independently of agent observability (#950)
  • fix: require certifi >= 2026.10.18 so 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 with aws.otel.udp.truncated. (#939)
  • fix: AwsAuthSession no longer caches a None credential result, so a single failed credential lookup (for example an IMDS timeout, which botocore reports as None rather than raising) no longer leaves every later OTLP export unsigned for the life of the process. (#941)
  • fix: honor OTEL_EXPORTER_OTLP_LOGS_COMPRESSION and OTEL_EXPORTER_OTLP_COMPRESSION in the AWS OTLP logs exporter, retaining gzip as the default when neither variable is configured. (#934)
  • fix: with OTEL_AWS_HTTP_OPERATION_PATHS set, 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/sigv4 exporter 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_sigv4 OTLP 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). requests is now declared as a direct dependency. (#905)
  • fix(mcp): inject client transport info into ClientSession to 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.1
  • opentelemetry-sdk - 1.45.1
  • opentelemetry-exporter-otlp-proto-grpc - 1.45.1
  • opentelemetry-exporter-otlp-proto-http - 1.45.1
  • opentelemetry-propagator-b3 - 1.45.1
  • opentelemetry-propagator-jaeger - 1.45.1
  • opentelemetry-exporter-otlp-proto-common - 1.45.1
  • opentelemetry-sdk-extension-aws - 2.1.0
  • opentelemetry-propagator-aws-xray - 1.0.2
  • opentelemetry-distro - 0.66b1
  • opentelemetry-processor-baggage - 0.66b1
  • opentelemetry-propagator-ot-trace - 0.66b1
  • opentelemetry-instrumentation - 0.66b1
  • opentelemetry-instrumentation-aws-lambda - 0.66b1
  • opentelemetry-instrumentation-aio-pika - 0.66b1
  • opentelemetry-instrumentation-aiohttp-client - 0.66b1
  • opentelemetry-instrumentation-aiokafka - 0.66b1
  • opentelemetry-instrumentation-aiopg - 0.66b1
  • opentelemetry-instrumentation-asgi - 0.66b1
  • opentelemetry-instrumentation-asyncpg - 0.66b1
  • opentelemetry-instrumentation-boto3sqs - 0.66b1
  • opentelemetry-instrumentation-botocore - 0.66b1
  • opentelemetry-instrumentation-celery - 0.66b1
  • opentelemetry-instrumentation-confluent-kafka - 0.66b1
  • opentelemetry-instrumentation-dbapi - 0.66b1
  • opentelemetry-instrumentation-django - 0.66b1
  • opentelemetry-instrumentation-falcon - 0.66b1
  • opentelemetry-instrumentation-fastapi - 0.66b1
  • opentelemetry-instrumentation-flask - 0.66b1
  • opentelemetry-instrumentation-grpc - 0.66b1
  • opentelemetry-instrumentation-httpx - 0.66b1
  • opentelemetry-instrumentation-jinja2 - 0.66b1
  • opentelemetry-instrumentation-kafka-python - 0.66b1
  • opentelemetry-instrumentation-logging - 0.66b1
  • opentelemetry-instrumentation-mysql - 0.66b1
  • opentelemetry-instrumentation-mysqlclient - 0.66b1
  • opentelemetry-instrumentation-pika - 0.66b1
  • opentelemetry-instrumentation-psycopg2 - 0.66b1
  • opentelemetry-instrumentation-pymemcache - 0.66b1
  • opentelemetry-instrumentation-pymongo - 0.66b1
  • opentelemetry-instrumentation-pymysql - 0.66b1
  • opentelemetry-instrumentation-pyramid - 0.66b1
  • opentelemetry-instrumentation-redis - 0.66b1
  • opentelemetry-instrumentation-remoulade - 0.66b1
  • opentelemetry-instrumentation-requests - 0.66b1
  • opentelemetry-instrumentation-sqlalchemy - 0.66b1
  • opentelemetry-instrumentation-sqlite3 - 0.66b1
  • opentelemetry-instrumentation-starlette - 0.66b1
  • opentelemetry-instrumentation-system-metrics - 0.66b1
  • opentelemetry-instrumentation-threading - 0.66b1
  • opentelemetry-instrumentation-tornado - 0.66b1
  • opentelemetry-instrumentation-tortoiseorm - 0.66b1
  • opentelemetry-instrumentation-urllib - 0.66b1
  • opentelemetry-instrumentation-urllib3 - 0.66b1
  • opentelemetry-instrumentation-wsgi - 0.66b1
  • opentelemetry-instrumentation-cassandra - 0.66b1
  • cachetools - 6.2.4
  • urllib3 >= 2.7.0; python_version >= '3.10'
  • requests ~= 2.25
  • certifi >= 2026.10.18
  • protobuf - 6.33.5
  • pyyaml - 6.0.3
  • python-dateutil >= 2.7.0
  • bytecode; python_version >= '3.10' and python_version < '3.12'

Release Artifacts

This release publishes to public ECR and PyPi.

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

Don't miss a new aws-otel-python-instrumentation release

NewReleases is sending notifications on new releases.