github open-telemetry/opentelemetry-js experimental/v0.220.0

latest release: v2.9.0
7 hours ago

0.220.0

💥 Breaking Changes

  • refactor(sdk-logs)!: refactor BatchLogRecordProcessor constructor signature #6817 @trentm
    • (user-facing): BatchLogRecordProcessor now takes a single options object with all possible properties, instead of two separate arguments. For example, before new BatchLogRecordProcessor(exporter, { maxQueueSize: 1000 }), after new BatchLogRecordProcessor({ exporter, maxQueueSize: 1000 }).
    • interface BufferConfig -> interface BatchLogRecordProcessorOptions, and now includes the exporter property
    • interface BatchLogRecordProcessorBrowserConfig -> interface BatchLogRecordProcessorBrowserOptions
    • (user-facing): SimpleLogRecordProcessor now takes a single options object with all possible properties. For example, before new SimpleLogRecordProcessor(exporter), after new SimpleLogRecordProcessor({ exporter }). #6836
  • refactor(configuration)!: change config file parsing to not add default values, nor merge *_list fields #6765 @trentm
  • docs(shim-opencensus): Notice: The @opentracing/shim-opencensus package 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_infoscope_info_enabled and without_target_info/developmenttarget_info_enabled/development on the Prometheus pull exporter (semantics inverted), rename with_resource_constant_labelsresource_constant_labels. Validate file_format per the configuration versioning spec: accept any minor version of major 1 (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_generator from declarative config #6782 @MikeGoldsmith
  • feat(sdk-node): wire up tracer_provider.sampler from 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 EnvironmentGetter read the current process.env #6853 @pellared

🐛 Bug Fixes

  • fix(sdk-logs): stop Logger.emit() doing work (record construction, metrics, processor onEmit) after the LoggerProvider has 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 scheduleDelayMillis is 1000 #6796 @trentm
  • fix(configuration): percent-decode keys and values in resource.attributes_list per spec #6787 @MikeGoldsmith
  • fix(configuration): default log_level to info in 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 node re-export of @opentelemetry/sdk-trace-node and tracing re-export of @opentelemetry/sdk-trace-base have been deprecated. (Historically the @opentelemetry/sdk-node package has re-exported from a number of core packages. It is now recommended that users directly import from those other packages.)
  • 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

Don't miss a new opentelemetry-js release

NewReleases is sending notifications on new releases.