Added
opentelemetry-api,opentelemetry-sdk: add support for 'random-trace-id' flags in W3C traceparent header trace flags. Implementations ofIdGeneratorthat do randomly generate the 56 least significant bits, should also implement ais_trace_id_randommethods that returnsTrue. (#4854)- logs: add exception support to Logger emit and LogRecord attributes (#4908)
opentelemetry-exporter-otlp-proto-grpc: make retryable gRPC error codes configurable for gRPC exporters (#4917)opentelemetry-sdk: Addcreate_logger_provider/configure_logger_providerto declarative file configuration, enabling LoggerProvider instantiation from config files without reading env vars (#4990)opentelemetry-exporter-otlp-json-common: add 'opentelemetry-exporter-otlp-json-common' package for OTLP JSON exporters (#4996)opentelemetry-sdk: Addserviceresource detector support to declarative file configuration viadetection_development.detectors[].service(#5003)opentelemetry-docker-tests: add docker-tests coverage ofopentelemetry-exporter-otlp-proto-grpcandopentelemetry-exporter-otlp-proto-httpmetrics export (#5030)- Add
registrykeyword argument toPrometheusMetricReaderto allow passing a custom Prometheus registry (#5055) - Add WeaverLiveCheck test util (#5088)
opentelemetry-sdk: addload_entry_pointshared utility to declarative file configuration for loading plugins via entry points; refactor propagator loading to use it (#5093)opentelemetry-sdk: add sampler plugin loading to declarative file configuration via theopentelemetry_samplerentry point group, matching the spec's PluginComponentProvider mechanism (#5095)opentelemetry-sdk: add propagator plugin loading to declarative file configuration via theopentelemetry_propagatorentry point group, matching the spec's PluginComponentProvider mechanism (#5098)opentelemetry-sdk: add exporter plugin loading to declarative file configuration for all three signals (traces, metrics, logs) via theopentelemetry_*_exporterentry point groups, matching the spec's PluginComponentProvider mechanism (#5128)opentelemetry-sdk: add generic resource detector plugin loading to declarative file configuration via theopentelemetry_resource_detectorentry point group, matching the spec's PluginComponentProvider mechanism (#5129)opentelemetry-sdk: addadditional_propertiessupport to generated config models via customdatamodel-codegentemplate, enabling plugin/custom component names to flow through typed dataclasses (#5131)- Add ability to selectively enable exporting of SDK internal metrics with the
OTEL_PYTHON_SDK_INTERNAL_METRICS_ENABLEDenvironment variable. (#5151)
Changed
opentelemetry-semantic-conventions: useX | Yunion annotation (#5096)opentelemetry-api: updateEnvironmentGetterandEnvironmentSetterto use normalized environment variable names (#5119)- Apply fixes for
UPruff rule (#5133) opentelemetry-sdk: only load entrypoints for resource detectors if they are configured viaOTEL_EXPERIMENTAL_RESOURCE_DETECTORS(#5145)- ci: wait for tracecontext server readiness instead of a fixed sleep in
scripts/tracecontext-integration-test.sh(#5149) - Switch to SPDX license headers and add CI enforcement (#5177)
opentelemetry-semantic-conventions: Bump semantic conventions to 1.41.1, this changes the metrics name ofK8S_CONTAINER_CPU_LIMIT_UTILIZATIONandK8S_CONTAINER_CPU_REQUEST_UTILIZATION. (#5200)
Removed
opentelemetry-api: remove third-party importlib-metadata in favor of standard library since Python >= 3.10 is now required (#3234)- Drop Python 3.9 support (#5076)
Fixed
opentelemetry-sdk: Allow declarative OTLP HTTP exporters to mapcompression: deflateinstead of rejecting it as unsupported. (#5075)- Fix incorrect code example in
create_tracer()docstring (#5077) opentelemetry-sdk: FixProcessResourceDetectorto usesys.orig_argvso thatprocess.command,process.command_line, andprocess.command_argsreflect the original invocation forpython -m <module>runs (wheresys.argv[0]is rewritten to the module path) (#5083)opentelemetry-sdk: fix YAML structure injection via environment variable substitution in declarative file configuration; values containing newlines are now emitted as quoted YAML scalars per spec requirement (#5091)opentelemetry-sdk: Fix mutable attributes reference in metrics, attributes passed to instrumentadd/recordare now copied so that subsequent mutations do not affect recorded data points (#5106)opentelemetry-sdk: make resource detector ordering deterministic (#5120)- Fix incorrect type annotation on
detectorsparameter ofget_aggregated_resources(#5135) opentelemetry-api: Enforce W3C Baggage size limits on outbound propagation inW3CBaggagePropagator.inject(). Previously only inbound extraction enforced limits; now inject also caps entries at 180, individual pairs at 4096 bytes, and total header at 8192 bytes per the W3C Baggage spec. The extract path max_pairs limit now counts all size-valid entries rather than only successfully parsed ones. (#5163)opentelemetry-sdk: fix multi-processorforce_flushskipping remaining processors when one returnsNone(#5179)opentelemetry-test-utils: fix weaver live check hanging when weaver log output fills the pipe buffer (#5208)