2.9.0
💥 Breaking Changes
- docs(shim-opentracing): Notice: The
@opentelemetry/shim-opentracingpackage will be removed in SDK 3.x, planned for approximately September 2026.- The OpenCensus and OpenTracing compatibility requirements in the OpenTelemetry specification have been deprecated.
🚀 Features
- feat(sdk-metrics): add maxExportBatchSize option to PeriodicExportingMetricReader #6655 @psx95
- Optimized
PeriodicExportingMetricReader.forceFlushto prevent redundant concurrent export cycles. Concurrent calls to forceFlush will now await any ongoing export and reuse a fresh export cycle if one is started concurrently by another caller. This ensures the latest metrics are always exported efficiently without triggering duplicate collection and export cycles.
- Optimized
- feat(sdk-trace): implement span processor metrics #6504 @anuraaga
- feat(sdk-trace): add a new "sdk-trace" package to hold the Trace SDK, without environment variable configuration handling that belongs elsewhere #6775 @trentm
- "sdk-trace" will eventually replace all of "sdk-trace-base", "sdk-trace-node", and "sdk-trace-web".
- The
BatchSpanProcessorconstructor call signature has changed in "sdk-trace". For example, beforenew BatchSpanProcessor(exporter, { maxQueueSize: 1000 }), afternew BatchSpanProcessor({ exporter, maxQueueSize: 1000 }). #6817 - The
SimpleSpanProcessorconstructor call signature has changed in "sdk-trace". For example, beforenew SimpleSpanProcessor(exporter), afternew SimpleSpanProcessor({ exporter, selfObsMeterProvider: ... }). #6504
- feat(sdk-trace): add AlwaysRecordSampler #6188 @majanjua-amzn
🐛 Bug Fixes
- fix(propagator-jaeger): do not throw on malformed percent-encoded
uber-trace-id/uberctx-*headers during extract @pichlermarc
🏠 Internal
- perf(sdk-metrics): defer allocation of HrTime to accumulation creation #6839 @legendecas
- chore(*): migrate use of sdk-trace-base and sdk-trace-node to sdk-trace #6851 @trentm
- perf(sdk-metrics): optionally capture active context for sync instruments #6848 @legendecas