0.220.0
💥 Breaking Changes
- refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor signature #6817 @trentm
- (user-facing):
BatchLogRecordProcessornow takes a singleoptionsobject with all possible properties, instead of two separate arguments. For example, beforenew BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 }), afternew BatchLogRecordProcessor({ exporter, maxQueueSize: 1000 }). interface BufferConfig->interface BatchLogRecordProcessorOptions, and now includes theexporterpropertyinterface BatchLogRecordProcessorBrowserConfig->interface BatchLogRecordProcessorBrowserOptions- (user-facing):
SimpleLogRecordProcessornow takes a singleoptionsobject with all possible properties. For example, beforenew SimpleLogRecordProcessor(exporter), afternew SimpleLogRecordProcessor({ exporter }). #6836
- (user-facing):
- refactor(configuration)!: change config file parsing to not add default values, nor merge
*_listfields #6765 @trentm- Responsibility for handling declarative config "nullBehavior" and "defaultBehavior" belongs in the "create" handling, currently in the "sdk-node" package.
- docs(shim-opencensus): Notice: The
@opentracing/shim-opencensuspackage 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.
- chore(sdk-node)!: Drop support for deprecated OpenCensusMetricProducer from declarative config
🚀 Features
- feat(configuration): bump config schema to v1.1.0; rename
without_scope_info→scope_info_enabledandwithout_target_info/development→target_info_enabled/developmenton the Prometheus pull exporter (semantics inverted), renamewith_resource_constant_labels→resource_constant_labels. Validatefile_formatper the configuration versioning spec: accept any minor version of major1(e.g.1.0,1.1), warn when the minor version is newer than supported, and reject other major versions. #6781 @MikeGoldsmith - feat(sdk-node): wire up
id_generatorfrom declarative config #6782 @MikeGoldsmith - feat(sdk-node): wire up
tracer_provider.samplerfrom declarative config (always_on, always_off, trace_id_ratio_based, parent_based); unrecognized variants warn and fall back to ParentBased(AlwaysOn) #6506 @MikeGoldsmith - feat(propagator-env-carrier): empty name normalization #6827 @pellared
- feat(propagator-env-carrier): make
EnvironmentGetterread the currentprocess.env#6853 @pellared
🐛 Bug Fixes
- fix(sdk-logs): stop
Logger.emit()doing work (record construction, metrics, processoronEmit) after theLoggerProviderhas shut down #6826 @anneheartrecord - fix(sdk-node): pass all config properties (endpoint, headers, timeout, TLS, compression, temporality preference, default histogram aggregation) to OTLP metric exporters in declarative config #6814 @MikeGoldsmith
- fix(sdk-logs): default BatchLogRecordProcessor
scheduleDelayMillisis 1000 #6796 @trentm - fix(configuration): percent-decode keys and values in
resource.attributes_listper spec #6787 @MikeGoldsmith - fix(configuration): default
log_leveltoinfoin env-based config initialization for consistency with file-based config #6788 @MikeGoldsmith - fix(sdk-node): fail-fast on LoggerProvider creation with startNodeSDK() and declarative config #6785 @trentm
📚 Documentation
- docs(configuration): link the configuration README to the cross-SDK declarative config language support status doc #6809 @MikeGoldsmith
🏠 Internal
- chore(sdk-node): migrate to use the new sdk-trace package #6828 @trentm
- The
nodere-export of@opentelemetry/sdk-trace-nodeandtracingre-export of@opentelemetry/sdk-trace-basehave been deprecated. (Historically the@opentelemetry/sdk-nodepackage has re-exported from a number of core packages. It is now recommended that users directly import from those other packages.)
- The
- chore(*): migrate use of sdk-trace-base and sdk-trace-node to sdk-trace #6851 @trentm
- fix(instrumentation,instrumentation-http): fix codecov coverage under-reporting by merging coverage across CJS/ESM test runs #6867 @mwear