Skip to content

Releases: open-telemetry/opentelemetry-js

v1.24.0

24 Apr 14:43
3ab4f76
Compare
Choose a tag to compare

1.24.0

🚀 (Enhancement)

  • feat(sdk-trace-base): log resource attributes in ConsoleSpanExporter #4605 @pichlermarc
  • feat(propagator-aws-xray): moved AWS Xray propagator from contrib 4603 @martinkuba
  • feat(resources): new experimental detector ServiceInstanceIdDetectorSync that sets the value for service.instance.id as random UUID. #4608 @maryliag

🐛 (Bug Fix)

  • fix(sdk-trace-web): fix invalid timings in span events #4486 @Abinet18
  • fix(resources): ensure BrowserDetector does not think Node.js v21 is a browser #4561 @trentm

Experimental v0.51.0

24 Apr 14:43
3ab4f76
Compare
Choose a tag to compare

0.51.0

💥 Breaking Change

  • feat(sdk-node)!: remove long deprecated methods in favor of constructor options #4606 @pichlermarc
    • NodeSDK.configureTracerProvider(), please use constructor options instead
    • NodeSDK.configureMeterProvider(), please use constructor options instead
    • NodeSDK.configureLoggerProvider(), please use constructor options instead
    • NodeSDK.addResource(), please use constructor options instead
    • NodeSDK.detectResources(), this is not necessary anymore, resources are now auto-detected on NodeSDK.start() if the constructor option autoDetectResources is unset, undefined or true.
  • feat(instrumentation): add patch and unpatch diag log messages #4641
    • Instrumentations should not log patch and unpatch messages to diag channel.
  • feat!(instrumentation): remove moduleExports generic type from instrumentation registration #4598 @blumamir
    • breaking for instrumentation authors that depend on
      • InstrumentationBase
      • InstrumentationNodeModuleDefinition
      • InstrumentationNodeModuleFile

🚀 (Enhancement)

  • refactor(instrumentation-grpc): move to use SEMATTRS #4633
  • feat(otlp-transformer): consolidate scope/resource creation in transformer #4600
  • feat(sdk-logs): print message when attributes are dropped due to attribute count limit #4614 @HyunnoH
  • feat(sdk-node): add usage for the detector ServiceInstanceIdDetectorSync. #4626 @maryliag
    • The resource detector can be added to default resource detector list by adding the value serviceinstance to the list of resource detectors on the environment variable OTEL_NODE_RESOURCE_DETECTORS, e.g OTEL_NODE_RESOURCE_DETECTORS=env,host,os,serviceinstance
    • The value can be overwritten by
      • merging a resource containing the service.instance.id attribute
      • using another resource detector which writes service.instance.id

🐛 (Bug Fix)

  • fix(otlp-grpc-exporter-base): avoid TypeError on exporter shutdown #4612 @pichlermarc
  • fix(instrumentation): Don't use require to load package.json files #4593 @timfish

v1.23.0

03 Apr 08:10
5231aa2
Compare
Choose a tag to compare

1.23.0

🚀 (Enhancement)

  • perf(sdk-trace-base): do not allocate arrays if resource has no pending async attributes #4576 @Samuron
  • feat(sdk-metrics): added experimental synchronous gauge to SDK #4565 @clintonb
    • this change will become user-facing in an upcoming release

🐛 (Bug Fix)

  • fix(sdk-metrics): increase the depth of the output to the console such that objects in the metric are printed fully to the console #4522 @JacksonWeber

Experimental v0.50.0

03 Apr 08:10
5231aa2
Compare
Choose a tag to compare

0.50.0

💥 Breaking Change

  • fix(exporter-*-otlp-grpc)!: lazy load gRPC to improve compatibility with @opentelemetry/instrumenation-grpc #4432 @pichlermarc
    • Fixes a bug where requiring the gRPC exporter before enabling the instrumentation from @opentelemetry/instrumentation-grpc would lead to missing telemetry
    • Breaking changes, removes several functions and properties that were used internally and were not intended for end-users
      • getServiceClientType()
        • this returned a static enum value that would denote the export type (SPAN, METRICS, LOGS)
      • getServiceProtoPath()
        • this returned a static enum value that would correspond to the gRPC service path
      • metadata
        • was used internally to access metadata, but as a side effect allowed end-users to modify metadata on runtime.
      • serviceClient
        • was used internally to keep track of the service client used by the exporter, as a side effect it allowed end-users to modify the gRPC service client that was used
      • compression
        • was used internally to keep track of the compression to use but was unintentionally exposed to the users. It allowed to read and write the value, writing, however, would have no effect.
  • feat(api-events)!: removed domain from the Events API #4569 @martinkuba
  • fix(api-events)!: renamed EventEmitter to EventLogger in the Events API #4569 @martinkuba
  • feat(api-logs)!: changed LogRecord body data type to AnyValue and AnyValueMap types #4575 @martinkuba

🚀 (Enhancement)

🐛 (Bug Fix)

  • fix(exporter--otlp-): use parseHeaders() to ensure header-values are not 'undefined' #4540
    • Fixes a bug where passing undefined as a header value would crash the end-user app after the export timeout elapsed.
  • fix(sdk-logs): ensure default resource attributes are used as fallbacks when a resource is passed to LoggerProvider.

📚 (Refine Doc)

  • docs(instrumentation-http): document semantic conventions and attributes in use. #4587 @JamieDanielson

v1.22.0

29 Feb 09:18
7be35c7
Compare
Choose a tag to compare

1.22.0

🚀 (Enhancement)

  • feat(sdk-metrics): allow single bucket histograms #4456 @pichlermarc
  • feat(context-zone-peer-dep, context-zone): support zone.js 0.13.x, 0.14.x #4469 @pichlermarc
  • chore: Semantic Conventions export individual strings 4185 @MSNev

🐛 (Bug Fix)

  • fix(sdk-metrics): handle zero bucket counts in exponential histogram merge #4459 @mwear
  • fix(sdk-metrics): ignore NaN value recordings in Histograms #4455 @pichlermarc
    • fixes a bug where recording NaN on a histogram would result in the sum of bucket count values not matching the overall count
  • fix(sdk-metrics): allow single bucket histograms #4456 @pichlermarc
    • fixes a bug where Meter.createHistogram() with the advice explicitBucketBoundaries: [] would throw
  • fix(context-zone-peer-dep, context-zone): support zone.js 0.13.x, 0.14.x #4469 @pichlermarc

📚 (Refine Doc)

Experimental v0.49.1

29 Feb 13:57
3920b15
Compare
Choose a tag to compare

0.49.1

🐛 (Bug Fix)

  • fix(instrumentation): don't add @opentelemetry/api-logs as a peerDependency #4515 @pichlermarc

Experimental v0.49.0

29 Feb 09:18
7be35c7
Compare
Choose a tag to compare

0.49.0

💥 Breaking Change

  • fix(otlp-exporter-base)!: remove unload event from OTLPExporterBrowserBase #4438 @eldavojohn
    • Reason: The 'unload' event prevents sites from taking advantage of Google's backward/forward cache and will be deprecated. It is now up to the consuming site to implement these shutdown events.
    • This breaking change affects users under this scenario:
      1. A user extends the exporter and overrides the shutdown function, and does something which is usually called by the unload listener
      2. We remove the unload event listener
      3. That user's overridden shutdown function no longer gets called

🚀 (Enhancement)

  • feat(instrumentation): allow LoggerProvider to be specified in Instrumentations #4314 @hectorhdzg
  • feat(instrumentation): add getModuleDefinitions() to InstrumentationBase #4475 @pichlermarc
  • feat(exporter-metrics-otlp-http): add option to set the exporter aggregation preference #4409 @AkselAllas
  • feat(node-sdk): add spanProcessors option #4454 @naseemkullah

🐛 (Bug Fix)

  • fix(sdk-node): allow using samplers when the exporter is defined in the environment #4394 @JacksonWeber
  • fix(instrumentation): normalize paths for internal files in scoped packages #4467 @pichlermarc
    • Fixes a bug where, on Windows, internal files on scoped packages would not be instrumented.
  • fix(otlp-transformer): only use BigInt inside hrTimeToNanos() #4484 @pichlermarc
  • fix(instrumentation-fetch): do not enable in Node.js; clarify in docs this instr is for web fetch only #4498 @trentm

API v1.8.0

29 Feb 09:19
7be35c7
Compare
Choose a tag to compare

API v1.8.0

🚀 (Enhancement)

  • feat(api): add SugaredTracer for functions not defined in the spec #3317 @secustor

🐛 (Bug Fix)

  • fix(api): fix unreachable @opentelemetry/api/experimental entry #4446 @legendecas

v1.21.0

26 Jan 06:22
828f2ed
Compare
Choose a tag to compare

1.21.0

🚀 (Enhancement)

  • feat(sdk-metrics): add constructor option to add metric readers #4427 @pichlermarc
    • deprecates MeterProvider.addMetricReader() please use the constructor option readers instead.

🐛 (Bug Fix)

  • fix(sdk-trace-base): ensure attribute value length limit is enforced on span creation #4417 @pichlermarc
  • fix(sdk-trace-base): Export processed spans while exporter failed #4287 @Zirak

🏠 (Internal)

  • chore(opentelemetry-context-zone-peer-dep): support zone.js ^v0.13.0 #4320
  • refactor(core): drop unnecessary assignment of HOSTNAME #4421 @pichlermarc
  • test(opentelemetry-context-zone-peer-dep): transpile zone.js in tests #4423 @legendecas

Experimental v0.48.0

26 Jan 06:22
828f2ed
Compare
Choose a tag to compare

0.48.0

💥 Breaking Change

  • fix(instrumentation)!: pin import-in-the-middle@1.7.1 #4441
    • Fixes a bug where, in some circumstances, ESM instrumentation packages would try to instrument CJS exports on ESM, causing the end-user application to crash.
    • This breaking change only affects users that are using the experimental @opentelemetry/instrumentation/hook.mjs loader hook AND Node.js 18.19 or later:
      • This reverts back to an older version of import-in-the-middle due to DataDog/import-in-the-middle#57
      • This version does not support Node.js 18.19 or later

🐛 (Bug Fix)

  • fix(exporter-prometheus): avoid invoking callback synchronously #4431 @legendecas
  • fix(exporter-logs-otlp-grpc): set User-Agent header #4398 @Vunovati
  • fix(exporter-logs-otlp-http): set User-Agent header #4398 @Vunovati
  • fix(exporter-logs-otlp-proto): set User-Agent header #4398 @Vunovati
  • fix(instrumentation-fetch): compatibility with Map types for fetch headers

🏠 (Internal)