Skip to content

Releases: open-telemetry/opentelemetry-dotnet

core-1.18.0

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Aug 12:32
Immutable release. Only release title and notes can be modified.
9db92a4

For highlights and announcements pertaining to this release see: Release Notes > 1.18.0.

The following changes are from the previous release 1.17.0.

  • NuGet: OpenTelemetry v1.18.0

    • Fixed self-diagnostics log lines being silently dropped when an event message or parameter contained enough 3-byte UTF-8 characters to overflow the internal buffer estimate. Such content is now truncated.
      (#7543)

    • Fixed activity creation throwing when multiple tracer providers return a sampler attribute with the same key.
      (#7558)

    • Added the otel.sdk.processor.log.processed SDK self-observability metric.
      (#7486)

    • Added the otel.sdk.processor.span.processed SDK self-observability metric.
      (#7598)

    • BatchActivityExportProcessor and SimpleActivityExportProcessor no longer forward spans to the exporter once Shutdown has been called, and BatchActivityExportProcessor.Shutdown now waits for in-flight OnEnd calls to finish enqueueing before flushing.
      (#7598)

    • Fix logger, meter and tracer providers leaking background threads if an exception is thrown by their constructor after resource creation.
      (#7615)

    • CircularBufferBuckets.Copy optimized to use bulk array copies.
      (#7670)

    • Restored configured MaxScale after delta exponential histogram collection.
      (#7671)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.18.0

    • Avoid formatting exceptions and creating exception attributes when RecordException is called on a span that is not recorded.
      (#7669)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.18.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.18.0

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>). These attributes will be serialized as JSON objects.
      (#7015)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.18.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.18.0

    • Fixed UseOtlpExporter to respect options configured through services.Configure<OtlpExporterOptions>(...).
      (#7540)

    • Clamped the server-supplied OTLP/gRPC retry delay (RetryInfo.retry_delay) to a non-negative value. A negative delay previously caused the telemetry batch to be dropped.
      (#7544)

    • Fixed serialization failures leaving failed trace, metric, and log batches in the serializer's per-thread state. For logs, this also leaked pooled instances.
      (#7579)

    • Fixed the persistent-storage retry thread terminating permanently on an unexpected exception, which silently disabled disk retry for the remaining process lifetime while stored telemetry continued to accumulate and then expire.
      (#7597)

    • Fixed the OTLP exporter from retrying certain non-transient HTTP failures.
      (#7600)

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>) as nested OTLP kvlist values. Nesting is limited to a maximum recursion depth of 3; deeper values fall back to their string representation.
      (#7015)

    • A server-supplied throttle delay (OTLP/gRPC RetryInfo.retry_delay or OTLP/HTTP Retry-After) is now clamped to a minimum of 100 milliseconds.
      (#7583)

    • Added OtlpExporterOptions.MaxResponseSizeBytes to configure the maximum size of a response the exporter will accept, as required by the OpenTelemetry specification. The default is the recommended 4 MiB. A response exceeding the limit is discarded and treated as a non-retryable failure.
      (#7583)

    • Improved OTLP log attribute serialization performance by avoiding unnecessary boxing.
      (#7645)

    • Improved OTLP histogram serialization performance by avoiding a redundant scan of explicit bucket bounds.
      (#7647)

    • The OTLP exporter will now export logger version if it was specified. Log records are grouped into ScopeLogs by logger name and version, so loggers sharing a name but reporting different versions are exported as separate scopes.
      (#7636)

    • Fixed persistent storage allowing a blob write to exceed the configured maximum storage size.
      (#7646)

    • Improved OTLP/gRPC response status handling performance by avoiding unnecessary header enumeration on .NET 8+.
      (#7659)

    • Added OtlpExporterOptions.MaxRequestSizeBytes to configure the OTLP request size limit, as required by the OpenTelemetry specification. The default is the recommended 64 MiB. A batch whose serialized payload exceeds the limit is not sent and is dropped in its entirety. The maximum supported value is 256 MiB.
      (#7584)

    • Breaking: The maximum size of a single export request is now 64 MiB by default instead of 128 MiB to conform with the OpenTelemetry specification. Raise the value of OtlpExporterOptions.MaxRequestSizeBytes property to increase the capacity.
      (#7584)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.18.0

    • Fixed the exporter to read responses with HttpCompletionOption.ResponseHeadersRead for the .NET Framework and .NET Standard targets, matching the behavior on .NET to avoid buffering the response body in memory when it is not actually used.
      (#7582)

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>).
      (#7015)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.18.0

    • Add new ITelemetryHostInitializer interface for applications that do not support hosted services, such as Blazor, to use to manually initialize the OpenTelemetry SDK as part of application startup.
      (#7641)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.18.0

    • Fixed inefficient parsing of the Jaeger uber-trace-id header when targeting net462 or netstandard2.0.
      (#7545)

    See [CHANGELOG](https://github.com/open-telemetry/opentelemetr...

Read more

coreunstable-1.18.0-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Aug 13:52
Immutable release. Only release title and notes can be modified.
45349c1

The following changes are from the previous release 1.17.0-beta.1.

  • NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.18.0-beta.1

    • Fix concurrent scrapes returning an empty response under contention. Now the exporter will return an HTTP 500 error instead.
      (#7571)

    • Waiting for concurrent scrapes to finish before collecting no longer blocks, which could stall concurrent scrapes being waited on.
      (#7571)

    • Fixed the interaction between PrometheusAspNetCoreOptions.TranslationStrategy and content negotiation. The configured strategy is now applied before content negotiation, instead of the negotiated escaping scheme replacing the strategy's, and the Content-Type header now reports the escaping scheme that was applied rather than the one that was negotiated.
      (#7610)

    • Fixed metric values and histogram bucket bounds being written with 17 significant digits instead of their shortest round-trippable representation.
      (#7589)

    • Fixed the canonical representation used for histogram le and summary quantile label values falling back to 17 significant digits incorrectly.
      (#7589)

    • Fixed a race where a slow scrape could return an HTTP 200 instead of 408.
      (#7615)

    • Updated OpenTelemetry core component version(s) to 1.18.0.
      (#7674)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.18.0-beta.1

    • Fix concurrent scrapes returning an empty response under contention. Now the exporter will return an HTTP 500 error instead.
      (#7571)

    • Waiting for concurrent scrapes to finish before collecting no longer blocks, which could stall concurrent scrapes being waited on.
      (#7571)

    • A scrape which is still collecting when the listener is disposed now returns an HTTP 503 response.
      (#7587)

    • Shutting down the listener no longer waits indefinitely for its request processing loop to stop, and no longer throws if the loop faulted.
      (#7587)

    • Fixed the interaction between PrometheusHttpListenerOptions.TranslationStrategy and content negotiation. The configured strategy is now applied before content negotiation, instead of the negotiated escaping scheme replacing the strategy's, and the Content-Type header now reports the escaping scheme that was applied rather than the one that was negotiated.
      (#7610)

    • Fixed metric values and histogram bucket bounds being written with 17 significant digits instead of their shortest round-trippable representation.
      (#7589)

    • Fixed the canonical representation used for histogram le and summary quantile label values falling back to 17 significant digits incorrectly.
      (#7589)

    • Fixed a race where a slow scrape could return an HTTP 200 instead of 408.
      (#7615)

    • Updated OpenTelemetry core component version(s) to 1.18.0.
      (#7674)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Shims.OpenTracing v1.18.0-beta.1

    • Updated OpenTelemetry core component version(s) to 1.18.0.
      (#7674)

    See CHANGELOG for details.

core-1.18.0-rc.1

core-1.18.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Aug 11:02
Immutable release. Only release title and notes can be modified.
d528d5f

The following changes are from the previous release 1.17.0.

  • NuGet: OpenTelemetry v1.18.0-rc.1

    • Fixed self-diagnostics log lines being silently dropped when an event message or parameter contained enough 3-byte UTF-8 characters to overflow the internal buffer estimate. Such content is now truncated.
      (#7543)

    • Fixed activity creation throwing when multiple tracer providers return a sampler attribute with the same key.
      (#7558)

    • Added the otel.sdk.processor.log.processed SDK self-observability metric.
      (#7486)

    • Added the otel.sdk.processor.span.processed SDK self-observability metric.
      (#7598)

    • BatchActivityExportProcessor and SimpleActivityExportProcessor no longer forward spans to the exporter once Shutdown has been called, and BatchActivityExportProcessor.Shutdown now waits for in-flight OnEnd calls to finish enqueueing before flushing.
      (#7598)

    • Fix logger, meter and tracer providers leaking background threads if an exception is thrown by their constructor after resource creation.
      (#7615)

    • CircularBufferBuckets.Copy optimized to use bulk array copies.
      (#7670)

    • Restored configured MaxScale after delta exponential histogram collection.
      (#7671)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.18.0-rc.1

    • Avoid formatting exceptions and creating exception attributes when RecordException is called on a span that is not recorded.
      (#7669)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.18.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.18.0-rc.1

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>). These attributes will be serialized as JSON objects.
      (#7015)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.18.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.18.0-rc.1

    • Fixed UseOtlpExporter to respect options configured through services.Configure<OtlpExporterOptions>(...).
      (#7540)

    • Clamped the server-supplied OTLP/gRPC retry delay (RetryInfo.retry_delay) to a non-negative value. A negative delay previously caused the telemetry batch to be dropped.
      (#7544)

    • Fixed serialization failures leaving failed trace, metric, and log batches in the serializer's per-thread state. For logs, this also leaked pooled instances.
      (#7579)

    • Fixed the persistent-storage retry thread terminating permanently on an unexpected exception, which silently disabled disk retry for the remaining process lifetime while stored telemetry continued to accumulate and then expire.
      (#7597)

    • Fixed the OTLP exporter from retrying certain non-transient HTTP failures.
      (#7600)

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>) as nested OTLP kvlist values. Nesting is limited to a maximum recursion depth of 3; deeper values fall back to their string representation.
      (#7015)

    • A server-supplied throttle delay (OTLP/gRPC RetryInfo.retry_delay or OTLP/HTTP Retry-After) is now clamped to a minimum of 100 milliseconds.
      (#7583)

    • Added OtlpExporterOptions.MaxResponseSizeBytes to configure the maximum size of a response the exporter will accept, as required by the OpenTelemetry specification. The default is the recommended 4 MiB. A response exceeding the limit is discarded and treated as a non-retryable failure.
      (#7583)

    • Improved OTLP log attribute serialization performance by avoiding unnecessary boxing.
      (#7645)

    • Improved OTLP histogram serialization performance by avoiding a redundant scan of explicit bucket bounds.
      (#7647)

    • The OTLP exporter will now export logger version if it was specified. Log records are grouped into ScopeLogs by logger name and version, so loggers sharing a name but reporting different versions are exported as separate scopes.
      (#7636)

    • Fixed persistent storage allowing a blob write to exceed the configured maximum storage size.
      (#7646)

    • Improved OTLP/gRPC response status handling performance by avoiding unnecessary header enumeration on .NET 8+.
      (#7659)

    • Added OtlpExporterOptions.MaxRequestSizeBytes to configure the OTLP request size limit, as required by the OpenTelemetry specification. The default is the recommended 64 MiB. A batch whose serialized payload exceeds the limit is not sent and is dropped in its entirety. The maximum supported value is 256 MiB.
      (#7584)

    • Breaking: The maximum size of a single export request is now 64 MiB by default instead of 128 MiB to conform with the OpenTelemetry specification. Raise the value of OtlpExporterOptions.MaxRequestSizeBytes property to increase the capacity.
      (#7584)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.18.0-rc.1

    • Fixed the exporter to read responses with HttpCompletionOption.ResponseHeadersRead for the .NET Framework and .NET Standard targets, matching the behavior on .NET to avoid buffering the response body in memory when it is not actually used.
      (#7582)

    • Added support for serializing attribute values that are key/value lists (IEnumerable<KeyValuePair<string, object?>>).
      (#7015)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.18.0-rc.1

    • Add new ITelemetryHostInitializer interface for applications that do not support hosted services, such as Blazor, to use to manually initialize the OpenTelemetry SDK as part of application startup.
      (#7641)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.18.0-rc.1

    • Fixed inefficient parsing of the Jaeger uber-trace-id header when targeting net462 or netstandard2.0.
      (#7545)

    See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.18.0-rc.1/src/OpenTelemetry.Ex...

Read more

core-1.17.0

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 16 Jul 12:48
Immutable release. Only release title and notes can be modified.
e432cd5

For highlights and announcements pertaining to this release see: Release Notes > 1.17.0.

The following changes are from the previous release 1.17.0-rc.1.

coreunstable-1.17.0-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 16 Jul 14:50
Immutable release. Only release title and notes can be modified.
41ff7b9

The following changes are from the previous release 1.16.0-beta.1.

  • NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.17.0-beta.1

    • Added a verbose-level diagnostic event for ignored metrics.
      (#7429)

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Fix double unit suffixes in metric names when using OpenMetrics.
      (#7454)

    • Fix incorrect handling of leading digits in metric names for OpenMetrics.
      (#7454)

    • Add PrometheusAspNetCoreOptions.ScopeInfoEnabled property to enable or
      disable scope labels in Prometheus metrics. Defaults to true.
      (#7436)

    • Added support for the dots and values Prometheus UTF-8 name escaping
      schemes when negotiated via the Accept header.
      (#7439)

    • Add PrometheusAspNetCoreOptions.TargetInfoEnabled property to enable or
      disable the target_info metric in Prometheus metrics. Defaults to true.
      (#7438)

    • Added support for the allow-utf-8 Prometheus UTF-8 name escaping scheme
      when negotiated via the Accept header.
      (#7440)

    • Add PrometheusAspNetCoreOptions.ResourceConstantLabels property to select
      resource attributes to add to each metric as constant labels. Defaults to
      null (no resource attributes are added as metric labels).
      (#7471)

    • Add PrometheusAspNetCoreOptions.MaxScrapeResponseSizeBytes to configure
      the maximum size of a scrape response. The default is now ~166 MiB.
      (#7487)

    • A scrape whose serialized output exceeds the maximum scrape response size
      limit now responds with HTTP 500.
      (#7487)

    • Fixed the Prometheus text exposition format emitting redundant comments.
      (#7491)

    • Made Accept header content negotiation consistent with the
      PrometheusHttpListener endpoint.
      (#7491)

    • Fixed # HELP metadata not escaping double-quote characters for the
      OpenMetrics text format.
      (#7491)

    • Fixed content negotiation defaulting to OpenMetrics 0.0.1 instead of 1.0.0
      when an application/openmetrics-text Accept header entry does not
      specify a version parameter.
      (#7491)

    • Added PrometheusAspNetCoreOptions.TranslationStrategy to control how
      OpenTelemetry metric and label names are translated into Prometheus names.
      (#7507)

    • Fix stack overflow during metric collection when under load.
      (#7524)

    • Updated OpenTelemetry core component version(s) to 1.17.0.
      (#7530)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.17.0-beta.1

    • Added a verbose-level diagnostic event for ignored metrics.
      (#7429)

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Removed the PrometheusHttpListenerOptions.UriPrefixes option.
      (#7435)

    • Fix double unit suffixes in metric names when using OpenMetrics.
      (#7454)

    • Fix incorrect handling of leading digits in metric names for OpenMetrics.
      (#7454)

    • Add PrometheusHttpListenerOptions.ScopeInfoEnabled property to enable or
      disable scope labels in Prometheus metrics. Defaults to true.
      (#7436)

    • Added support for the dots and values Prometheus UTF-8 name escaping
      schemes when negotiated via the Accept header.
      (#7439)

    • Add PrometheusHttpListenerOptions.TargetInfoEnabled property to enable or
      disable the target_info metric in Prometheus metrics. Defaults to true.
      (#7438)

    • Added the PrometheusHttpListenerOptions.ConfigureHttpListener option.
      (#7448)

    • Added support for the allow-utf-8 Prometheus UTF-8 name escaping scheme
      when negotiated via the Accept header.
      (#7440)

    • Add PrometheusHttpListenerOptions.ResourceConstantLabels property to select
      resource attributes to add to each metric as constant labels. Defaults to
      null (no resource attributes are added as metric labels).
      (#7471)

    • Add PrometheusHttpListenerOptions.MaxScrapeResponseSizeBytes to configure
      the maximum size of a scrape response. The default is now ~166 MiB.
      (#7487)

    • A scrape whose serialized output exceeds the maximum scrape response size
      limit now responds with HTTP 500.
      (#7487)

    • Fixed the Prometheus text exposition format emitting redundant comments.
      (#7491)

    • Fixed # HELP metadata not escaping double-quote characters for the
      OpenMetrics text format.
      (#7491)

    • Fixed content negotiation defaulting to OpenMetrics 0.0.1 instead of 1.0.0
      when an application/openmetrics-text Accept header entry does not
      specify a version parameter.
      (#7491)

    • Added PrometheusHttpListenerOptions.TranslationStrategy to control how
      OpenTelemetry metric and label names are translated into Prometheus names.
      (#7507)

    • Fix stack overflow during metric collection when under load.
      (#7524)

    • Updated OpenTelemetry core component version(s) to 1.17.0.
      (#7530)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Shims.OpenTracing v1.17.0-beta.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Updated OpenTelemetry core component version(s) to 1.17.0.
      (#7530)

    See CHANGELOG for details.

core-1.17.0-rc.1

core-1.17.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 16 Jul 10:11
Immutable release. Only release title and notes can be modified.
d944eeb

The following changes are from the previous release 1.16.0.

  • NuGet: OpenTelemetry v1.17.0-rc.1

    • Fixed a metric point reclaim data race on CPU ARM architectures.
      (#7401)

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Replaced the vendored copy of
      EnvironmentVariablesConfigurationProvider with a direct
      Microsoft.Extensions.Configuration.EnvironmentVariables package dependency.
      Consumers gain automatic pickup of upstream bug fixes and security patches;
      no public API or behavioural change.
      (#7146)

    • Added a verbose OpenTelemetry-Sdk self-diagnostics event that is emitted
      when an activity is dropped because its local (in-process) parent is not
      recorded.
      (#7427)

    • Added support for a Schema URL on Resource instances.
      (#7472)

    • Fixed a metric storage leak that occurred when meters and instruments were
      repeatedly created and disposed.
      (#7466)

    • Added ExcludedTagKeys property to MetricStreamConfiguration to support
      excluding specific tag keys from metric streams.
      (#7373)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.17.0-rc.1

    • Fixed TraceContextPropagator to normalize empty tracestate header values
      to null when extracting trace context.
      (#7407,
      #7433)

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Experimental (pre-release builds only): Updated EnvironmentVariableCarrier.Get
      to read only the normalized environment variable name, following the updated
      environment variable carrier specification.
      Non-normalized carrier keys are no longer matched, even when they would
      normalize to the requested key.
      (#7410)

    • Experimental (pre-release builds only): Updated EnvironmentVariableCarrier
      key normalization to replace an empty key with a single underscore (_).
      (#7424)

    • Updated tracestate key validation to comply with the W3C Trace Context
      Level 2 grammar.
      (#7469)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • The Resource Schema URL is now printed alongside the resource attributes.
      (#7472)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0-rc.1

    • Fixed OtlpLogExporter so OtlpExporterOptions.ExportProcessorType and
      OtlpExporterOptions.BatchExportProcessorOptions are respected when
      LogRecordExportProcessorOptions are not configured.
      (#7399)

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Fixed the OTLP exporter dropping retryable data instead of saving it to disk
      when persistent storage retry is enabled and an export exceeds the configured
      timeout.
      (#7447)

    • Cached pre-serialized metric metadata (Name / Description / Unit) to avoid
      re-encoding on every OTLP metric export.
      (#7307)

    • Fixed the OTLP/HTTP exporter silently dropping data when an export timed out.
      (#7455)

    • Fixed the OTLP/gRPC exporter logging incorrectly when an export timed out.
      (#7455)

    • The Resource Schema URL is now exported on the OTLP ResourceSpans,
      ResourceMetrics, and ResourceLogs messages.
      (#7472)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    • Dropped the vendored EnvironmentVariablesConfigurationProvider copy; the
      provider is now sourced transitively from the
      Microsoft.Extensions.Configuration.EnvironmentVariables package referenced
      by OpenTelemetry. No public API or behavioural change.
      (#7146)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.17.0-rc.1

    • The library is now marked as trim and AOT compatible.
      (#7441)

    See CHANGELOG for details.

core-1.16.0

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 10 Jun 18:22
Immutable release. Only release title and notes can be modified.
611868a

For highlights and announcements pertaining to this release see: Release Notes > 1.16.0.

The following changes are from the previous release 1.16.0-rc.1.

coreunstable-1.16.0-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 10 Jun 22:21
Immutable release. Only release title and notes can be modified.
c396661

The following changes are from the previous release 1.15.3-beta.1.

  • NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.16.0-beta.1

    • Fixed scrape response cache freshness using monotonic time so it is not
      affected by NTP system clock adjustments.
      (#7253)

    • Breaking Change Removed DisableTimestamp property from
      PrometheusAspNetCoreOptions.
      (#7176)

    • Fixed the serialization of NaN, PositiveInfinity, and NegativeInfinity
      values in Prometheus metrics to be compliant with the specification.
      (#7179)

    • Fixed loss of precision when serializing double and float values in
      Prometheus metrics to be compliant with the specification by using 17
      significant digits to represent such values.
      (#7179)

    • Fix non-ASCII characters in metric names and unit strings not being sanitized
      correctly during Prometheus serialization.
      (#7184)

    • Fix case where reader tracking could be reset while readers were still active.
      (#7190)

    • Improve Accept header handling for format negotiation so OpenMetrics is
      selected correctly by considering whitespace and q weights.
      (#7208)

    • Emit OpenMetrics exemplars for counters and histogram buckets.
      (#7222)

    • Fix incorrect handling of untyped metrics when using OpenMetrics format.
      (#7219)

    • Fix Prometheus/OpenMetrics serialization to emit metric and label names
      containing _ instead of dropping them and prefixing leading digits.
      Invalid characters are replaced with _ instead of being dropped.
      (#7209)

    • Add escaping=underscores to the Accept header handling for content
      negotiation so OpenMetrics are handled correctly.
      (#7209)

    • Omit histogram _sum and _count in OpenMetrics when negative bucket
      thresholds are present.
      (#7221)

    • Fix ArgumentException if OTEL_SDK_DISABLED=true.
      (#7273)

    • Update Accept header parsing to more closely follow the Prometheus
      Scrape protocol content negotiation
      specification.
      (#7266)

    • Abort scrape request processing if request exceeds the value specified by the
      X-Prometheus-Scrape-Timeout-Seconds HTTP request header.
      (#7252)

    • Use the canonical representation for histogram "le" label values when using
      OpenMetrics.
      (#7218)

    • Add Prometheus text fallback target_info output as a gauge.
      (#7238)

    • Merge colliding sanitized label keys.
      (#7239)

    • Export {name}_created series for counters and histograms when using
      OpenMetrics and a start time is available.
      (#7223)

    • GZip compress scrape endpoint responses when Accept-Encoding: gzip is
      specified by the HTTP request headers.
      (#7274)

    • Include instrumentation scope metadata on samples using otel_scope_* labels
      including scope version, schema URL, and prefixed scope attributes. OpenMetrics
      output no longer emits a separate otel_scope_info scope metadata metric.
      (#7237)

    • Drop conflicting scope attributes named name, version, and schema_url.
      (#7237)

    • Updated OpenTelemetry core component version(s) to 1.16.0.
      (#52)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.16.0-beta.1

    • Fixed scrape response cache freshness using monotonic time so it is not
      affected by NTP system clock adjustments.
      (#7253)

    • Added Host and Port properties on PrometheusHttpListenerOptions
      for configuring the HTTP listener endpoint. The
      PrometheusHttpListenerOptions.UriPrefixes property is now obsolete and
      will be removed in the stable release.
      (#7114)

    • Breaking Change Removed DisableTimestamp property from
      PrometheusHttpListenerOptions.
      (#7176)

    • Fixed the serialization of NaN, PositiveInfinity, and NegativeInfinity
      values in Prometheus metrics to be compliant with the specification.
      (#7179)

    • Fixed loss of precision when serializing double and float values in
      Prometheus metrics to be compliant with the specification by using 17
      significant digits to represent such values.
      (#7179)

    • Fix non-ASCII characters in metric names and unit strings not being sanitized
      correctly during Prometheus serialization.
      (#7184)

    • Add support for caching the scrape endpoint HTTP responses using the
      PrometheusHttpListenerOptions.ScrapeResponseCacheDurationMilliseconds option.
      The default value is 300 milliseconds. Set the option to 0 to disable
      response caching.
      (#7189)

    • Fix case where reader tracking could be reset while readers were still active.
      (#7190)

    • Improve Accept header handling for format negotiation so OpenMetrics is
      selected correctly by considering whitespace and q weights.
      (#7208)

    • Emit OpenMetrics exemplars for counters and histogram buckets.
      (#7222)

    • Fix incorrect handling of untyped metrics when using OpenMetrics format.
      (#7219)

    • Add support for configuring the HTTP listener endpoint host and port using
      the OTEL_EXPORTER_PROMETHEUS_HOST and OTEL_EXPORTER_PROMETHEUS_PORT
      environment variables.
      (#7167,
      #7255)

    • Fix Prometheus/OpenMetrics serialization to emit metric and label names
      containing and _ instead of dropping them and prefixing leading digits.
      Invalid characters are replaced with _ instead of being dropped.
      (#7209)

    • Add escaping=underscores to the Accept header handling for content
      negotiation so OpenMetrics are handled correctly.
      (#7209)

    • Omit histogram _sum and _count in OpenMetrics when negative bucket
      thresholds are present.
      (#7221)

    • Update Accept header parsing to more closely follow the Prometheus
      Scrape protocol content negotiation
      specification.
      (#7266)

    • Abort scrape request processing if request exceeds the value specified by the
      X-Prometheus-Scrape-Timeout-Seconds HTTP request header.
      (#7252)

    • Use the canonical representation for histogram "le" label values when using
      OpenMetrics.
      (#7218)

    • Add Prometheus text fallback target_info output as a gauge.
      (#7238)

    • Merge colliding sanitized label keys.
      ([#7239](https://github.com/open-telemetry/opentelemetry-do...

Read more

core-1.16.0-rc.1

core-1.16.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 10 Jun 16:18
Immutable release. Only release title and notes can be modified.
21b9ddb

The following changes are from the previous release 1.15.3.

  • NuGet: OpenTelemetry v1.16.0-rc.1

    • Stop validating View-provided metric stream Name against the instrument
      name syntax, per
      spec clarification.
      (#7300)

    • Fix incorrect validation of OTEL_BSP_* and OTEL_BLRP_* environment
      variables.
      (#7187)

    • Fix observable instrument callbacks running once per reader instead of
      once per collection cycle.
      (#7188)

    • Added exception safety for user-supplied ExemplarReservoir implementations.
      Exceptions thrown from Offer are now caught and logged rather than propagating
      out of Counter.Add/Histogram.Record.
      (#7277)

    • Update OpenTelemetrySdkEventSource to support the W3C randomness flag.
      (#7301)

    • Added ObservedTimestamp property to LogRecord.
      (#6979)

    • Breaking Change Explicit histogram boundaries no longer allow more than
      10 million values.
      (#7165)

    • Fixed a circular reference which could cause a LoggerProvider to fail to
      resolve when one of its dependencies depends on ILogger or ILoggerFactory.
      As part of this fix the LoggerProvider resolved from dependency injection
      is now created lazily when the first logger is created rather than when
      ILoggerProvider or ILoggerFactory is resolved. A consequence is that any
      invalid configuration now surfaces when the first log record is written instead
      of when the logging services are resolved.
      (#7308)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.16.0-rc.1

    • Experimental (pre-release builds only):
      Add support for using environment variables as context propagation carriers.
      (#7174)

    • Fix BaggagePropagator to correctly follow Key and Value Encoding rules as per
      the W3C Baggage specification.
      #7051

    • Update TraceContextPropagator to support the W3C randomness flag.
      (#7301)

    • Fixed TraceContextPropagator to deduplicate duplicate tracestate keys
      instead of discarding the entire tracestate header.
      (#7309)

    • Breaking change (pre-release only versions): The default value of
      the Timestamp property on LogRecordData has changed from DateTime.UtcNow
      to DateTime.MinValue. DateTime.MinValue represents an unset timestamp as
      defined by the OpenTelemetry specification. Callers of the Logs API
      who relied on the timestamp being populated automatically must now set
      Timestamp = DateTime.UtcNow explicitly on their LogRecordData instance.
      (#7045)

    • Added ObservedTimestamp property to LogRecordData. Note that LogRecordData
      is only public in pre-release versions of the package.
      (#6979)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.16.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.16.0-rc.1

    • ObservedTimestamp will now be exported for logs.
      (#6979)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.16.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.16.0-rc.1

    • Fixed NullReferenceException when exporting logs if the scope key is null.
      (#7186)

    • Added opt-in support for gzip compression. Compression can be configured
      programmatically via the new OtlpExporterOptions.Compression property,
      or through the environment variables such as OTEL_EXPORTER_OTLP_COMPRESSION=gzip.
      (#7055)

    • Fixed disk retry data being stored incorrectly when using persistent storage
      retry.
      (#7228)

    • Reverted OtlpLogExporter from using IHttpClientFactory on .NET 8+ to fix
      an issue with circular dependencies detected by some dependency injection
      container implementations such as Autofac.
      (#7234)

    • Fixed OtlpLogExporter integration with IHttpClientFactory so named clients
      can be used without triggering circular dependencies during logger construction.
      (#7298)

    • Reduce the overhead of GZip compression.
      (#7275)

    • Cached pre-serialized resource bytes to avoid re-encoding on every OTLP export.
      (#7303)

    • Do not enable the integration with IHttpClientFactory when mTLS is enabled.
      (#7305)

    • Handle Retry-After response headers that specify a date instead of a delay.
      (#7364)

    • observed_time_unix_nano will no longer always be identical to time_unix_nano
      when using the logs bridge API. By default, it will instead be set to the actual
      observed time of the log record.
      (#6979)

    • Fixed the retry deadline check so a Retry-After delay (whether a delta or an
      HTTP-date) that would extend a retry beyond the configured export timeout now
      correctly fails fast and drops the data.
      (#7375)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.16.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.16.0-rc.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.16.0-rc.1

    No notable changes.

    See CHANGELOG for details.

core-1.15.3

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Apr 08:03
Immutable release. Only release title and notes can be modified.
d622e6c

For highlights and announcements pertaining to this release see: Release Notes > 1.15.3.

The following changes are from the previous release 1.15.2.

  • NuGet: OpenTelemetry v1.15.3

    • Fix resource leak in batch and periodic exporting task workers for Blazor/WASM.
      (#7069)

    • Fixed LogRecord.LogLevel to preserve LogLevel.None and handle
      unspecified or out-of-range severities without returning invalid enum values.
      (#7092)

    • Fixed OTEL_TRACES_SAMPLER_ARG handling to treat out-of-range, NaN, and
      infinite values as invalid and fall back to the default ratio when using
      traceidratio and parentbased_traceidratio samplers.
      (#7103)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.15.3

    • Fix baggage and trace headers not respecting the maximum length in some cases
      to resolve GHSA-g94r-2vxg-569j.
      (#7061)

    • Improve efficiency of parsing of baggage and B3 propagation headers
      to resolve GHSA-g94r-2vxg-569j.
      (#7061)

    • Breaking change: Fixed tracestate parsing to reject keys that do not
      begin with a lowercase letter, including keys beginning with digits, to
      align with the W3C Trace Context specification.
      (#7065)

    • Fixed BaggagePropagator to trim optional whitespace (OWS) around =
      separators when parsing the baggage header, as required by the
      W3C Baggage specification.
      (#7009)

    • Fixed BaggagePropagator to strip baggage properties (e.g. ;metadata)
      from values when parsing the baggage header.
      (#7009)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.15.3

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.15.3

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.15.3

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.15.3

    • OtlpLogExporter now uses IHttpClientFactory on .NET 8+, matching the
      behaviour of the trace and metrics exporters.
      (#7109)

    • Fixed an issue in persistent storage cleanup where malformed .blob, .tmp,
      or .lock filenames could throw and interrupt maintenance to resolve
      GHSA-88hf-wf7h-7w4m.
      (#7108)

    • Breaking change: Fixed an insecure disk retry default. Disk retry now
      requires OTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATH when
      OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY=disk is configured. The exporter no
      longer falls back to a shared temp directory by default.
      To retain the previous behaviour, set the
      OTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATH environment
      variable to the value one of the following environment variables:

      • TMP, TMP, or USERPROFILE (Windows)
      • TMPDIR (or the literal value /tmp/) (Linux,
        macOS).

      This change resolves GHSA-4625-4j76-fww9.

      (#7106)

    • Fixed an issue in OTLP/gRPC retry handling where parsing gRPC status to
      resolve GHSA-mr8r-92fq-pj8p.
      (#7064)

    • Fixed an issue with OTLP disk retry storage where metrics and logs used the
      traces storage directory. Disk retry storage is now separated by signal using
      traces, metrics, and logs directories.
      (#7074)

    • Fixed full OTLP endpoint being logged by internal diagnostics.
      (#7116)

    • Fix OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT not being applied.
      (#7115)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.15.3

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.15.3

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.15.3

    See CHANGELOG for details.