Releases: open-telemetry/opentelemetry-dotnet
Release list
core-1.18.0
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.processedSDK self-observability metric.
(#7486) -
Added the
otel.sdk.processor.span.processedSDK self-observability metric.
(#7598) -
BatchActivityExportProcessorandSimpleActivityExportProcessorno longer forward spans to the exporter onceShutdownhas been called, andBatchActivityExportProcessor.Shutdownnow waits for in-flightOnEndcalls 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.Copyoptimized to use bulk array copies.
(#7670) -
Restored configured
MaxScaleafter delta exponential histogram collection.
(#7671)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Api v1.18.0
- Avoid formatting exceptions and creating exception attributes when
RecordExceptionis called on a span that is not recorded.
(#7669)
See CHANGELOG for details.
- Avoid formatting exceptions and creating exception attributes when
-
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.
- Added support for serializing attribute values that are key/value lists (
-
NuGet: OpenTelemetry.Exporter.InMemory v1.18.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.18.0
-
Fixed
UseOtlpExporterto respect options configured throughservices.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
diskretry 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 OTLPkvlistvalues. 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_delayor OTLP/HTTPRetry-After) is now clamped to a minimum of 100 milliseconds.
(#7583) -
Added
OtlpExporterOptions.MaxResponseSizeBytesto 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
ScopeLogsby 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.MaxRequestSizeBytesto 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.MaxRequestSizeBytesproperty to increase the capacity.
(#7584)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Exporter.Zipkin v1.18.0
-
Fixed the exporter to read responses with
HttpCompletionOption.ResponseHeadersReadfor 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
ITelemetryHostInitializerinterface 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.
- Add new
-
NuGet: OpenTelemetry.Extensions.Propagators v1.18.0
- Fixed inefficient parsing of the Jaeger
uber-trace-idheader when targetingnet462ornetstandard2.0.
(#7545)
See [CHANGELOG](https://github.com/open-telemetry/opentelemetr...
- Fixed inefficient parsing of the Jaeger
coreunstable-1.18.0-beta.1
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.TranslationStrategyand content negotiation. The configured strategy is now applied before content negotiation, instead of the negotiated escaping scheme replacing the strategy's, and theContent-Typeheader 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
leand summaryquantilelabel 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.TranslationStrategyand content negotiation. The configured strategy is now applied before content negotiation, instead of the negotiated escaping scheme replacing the strategy's, and theContent-Typeheader 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
leand summaryquantilelabel 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.
- Updated OpenTelemetry core component version(s) to
core-1.18.0-rc.1
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.processedSDK self-observability metric.
(#7486) -
Added the
otel.sdk.processor.span.processedSDK self-observability metric.
(#7598) -
BatchActivityExportProcessorandSimpleActivityExportProcessorno longer forward spans to the exporter onceShutdownhas been called, andBatchActivityExportProcessor.Shutdownnow waits for in-flightOnEndcalls 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.Copyoptimized to use bulk array copies.
(#7670) -
Restored configured
MaxScaleafter 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
RecordExceptionis called on a span that is not recorded.
(#7669)
See CHANGELOG for details.
- Avoid formatting exceptions and creating exception attributes when
-
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.
- Added support for serializing attribute values that are key/value lists (
-
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
UseOtlpExporterto respect options configured throughservices.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
diskretry 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 OTLPkvlistvalues. 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_delayor OTLP/HTTPRetry-After) is now clamped to a minimum of 100 milliseconds.
(#7583) -
Added
OtlpExporterOptions.MaxResponseSizeBytesto 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
ScopeLogsby 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.MaxRequestSizeBytesto 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.MaxRequestSizeBytesproperty 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.ResponseHeadersReadfor 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
ITelemetryHostInitializerinterface 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.
- Add new
-
NuGet: OpenTelemetry.Extensions.Propagators v1.18.0-rc.1
- Fixed inefficient parsing of the Jaeger
uber-trace-idheader when targetingnet462ornetstandard2.0.
(#7545)
See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.18.0-rc.1/src/OpenTelemetry.Ex...
- Fixed inefficient parsing of the Jaeger
core-1.17.0
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.
-
NuGet: OpenTelemetry v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Api v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.Console v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.InMemory v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.Zipkin v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Hosting v1.17.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Propagators v1.17.0
No notable changes.
See CHANGELOG for details.
coreunstable-1.17.0-beta.1
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.ScopeInfoEnabledproperty to enable or
disable scope labels in Prometheus metrics. Defaults totrue.
(#7436) -
Added support for the
dotsandvaluesPrometheus UTF-8 name escaping
schemes when negotiated via theAcceptheader.
(#7439) -
Add
PrometheusAspNetCoreOptions.TargetInfoEnabledproperty to enable or
disable thetarget_infometric in Prometheus metrics. Defaults totrue.
(#7438) -
Added support for the
allow-utf-8Prometheus UTF-8 name escaping scheme
when negotiated via theAcceptheader.
(#7440) -
Add
PrometheusAspNetCoreOptions.ResourceConstantLabelsproperty 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.MaxScrapeResponseSizeBytesto 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
Acceptheader content negotiation consistent with the
PrometheusHttpListenerendpoint.
(#7491) -
Fixed
# HELPmetadata 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 anapplication/openmetrics-textAcceptheader entry does not
specify aversionparameter.
(#7491) -
Added
PrometheusAspNetCoreOptions.TranslationStrategyto 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.UriPrefixesoption.
(#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.ScopeInfoEnabledproperty to enable or
disable scope labels in Prometheus metrics. Defaults totrue.
(#7436) -
Added support for the
dotsandvaluesPrometheus UTF-8 name escaping
schemes when negotiated via theAcceptheader.
(#7439) -
Add
PrometheusHttpListenerOptions.TargetInfoEnabledproperty to enable or
disable thetarget_infometric in Prometheus metrics. Defaults totrue.
(#7438) -
Added the
PrometheusHttpListenerOptions.ConfigureHttpListeneroption.
(#7448) -
Added support for the
allow-utf-8Prometheus UTF-8 name escaping scheme
when negotiated via theAcceptheader.
(#7440) -
Add
PrometheusHttpListenerOptions.ResourceConstantLabelsproperty 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.MaxScrapeResponseSizeBytesto 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
# HELPmetadata 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 anapplication/openmetrics-textAcceptheader entry does not
specify aversionparameter.
(#7491) -
Added
PrometheusHttpListenerOptions.TranslationStrategyto 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
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
EnvironmentVariablesConfigurationProviderwith a direct
Microsoft.Extensions.Configuration.EnvironmentVariablespackage dependency.
Consumers gain automatic pickup of upstream bug fixes and security patches;
no public API or behavioural change.
(#7146) -
Added a verbose
OpenTelemetry-Sdkself-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
Resourceinstances.
(#7472) -
Fixed a metric storage leak that occurred when meters and instruments were
repeatedly created and disposed.
(#7466) -
Added
ExcludedTagKeysproperty toMetricStreamConfigurationto support
excluding specific tag keys from metric streams.
(#7373)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Api v1.17.0-rc.1
-
Fixed
TraceContextPropagatorto normalize emptytracestateheader values
tonullwhen 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
tracestatekey 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.
- The library is now marked as trim and AOT compatible.
-
NuGet: OpenTelemetry.Exporter.Console v1.17.0-rc.1
-
The library is now marked as trim and AOT compatible.
(#7441) -
The
ResourceSchema 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.
- The library is now marked as trim and AOT compatible.
-
NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.17.0-rc.1
-
Fixed
OtlpLogExportersoOtlpExporterOptions.ExportProcessorTypeand
OtlpExporterOptions.BatchExportProcessorOptionsare respected when
LogRecordExportProcessorOptionsare 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
ResourceSchema URL is now exported on the OTLPResourceSpans,
ResourceMetrics, andResourceLogsmessages.
(#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
EnvironmentVariablesConfigurationProvidercopy; the
provider is now sourced transitively from the
Microsoft.Extensions.Configuration.EnvironmentVariablespackage referenced
byOpenTelemetry. 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.
- The library is now marked as trim and AOT compatible.
-
NuGet: OpenTelemetry.Extensions.Propagators v1.17.0-rc.1
- The library is now marked as trim and AOT compatible.
(#7441)
See CHANGELOG for details.
- The library is now marked as trim and AOT compatible.
core-1.16.0
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.
-
NuGet: OpenTelemetry v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Api v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.Console v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.InMemory v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.Zipkin v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Hosting v1.16.0
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Propagators v1.16.0
No notable changes.
See CHANGELOG for details.
coreunstable-1.16.0-beta.1
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
DisableTimestampproperty from
PrometheusAspNetCoreOptions.
(#7176) -
Fixed the serialization of
NaN,PositiveInfinity, andNegativeInfinity
values in Prometheus metrics to be compliant with the specification.
(#7179) -
Fixed loss of precision when serializing
doubleandfloatvalues 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
Acceptheader handling for format negotiation so OpenMetrics is
selected correctly by considering whitespace andqweights.
(#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=underscoresto theAcceptheader handling for content
negotiation so OpenMetrics are handled correctly.
(#7209) -
Omit histogram
_sumand_countin OpenMetrics when negative bucket
thresholds are present.
(#7221) -
Fix
ArgumentExceptionifOTEL_SDK_DISABLED=true.
(#7273) -
Update
Acceptheader 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-SecondsHTTP request header.
(#7252) -
Use the canonical representation for histogram "le" label values when using
OpenMetrics.
(#7218) -
Add Prometheus text fallback
target_infooutput as a gauge.
(#7238) -
Merge colliding sanitized label keys.
(#7239) -
Export
{name}_createdseries for counters and histograms when using
OpenMetrics and a start time is available.
(#7223) -
GZip compress scrape endpoint responses when
Accept-Encoding: gzipis
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 separateotel_scope_infoscope metadata metric.
(#7237) -
Drop conflicting scope attributes named
name,version, andschema_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
HostandPortproperties onPrometheusHttpListenerOptions
for configuring the HTTP listener endpoint. The
PrometheusHttpListenerOptions.UriPrefixesproperty is now obsolete and
will be removed in the stable release.
(#7114) -
Breaking Change Removed
DisableTimestampproperty from
PrometheusHttpListenerOptions.
(#7176) -
Fixed the serialization of
NaN,PositiveInfinity, andNegativeInfinity
values in Prometheus metrics to be compliant with the specification.
(#7179) -
Fixed loss of precision when serializing
doubleandfloatvalues 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.ScrapeResponseCacheDurationMillisecondsoption.
The default value is300milliseconds. Set the option to0to disable
response caching.
(#7189) -
Fix case where reader tracking could be reset while readers were still active.
(#7190) -
Improve
Acceptheader handling for format negotiation so OpenMetrics is
selected correctly by considering whitespace andqweights.
(#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
theOTEL_EXPORTER_PROMETHEUS_HOSTandOTEL_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=underscoresto theAcceptheader handling for content
negotiation so OpenMetrics are handled correctly.
(#7209) -
Omit histogram
_sumand_countin OpenMetrics when negative bucket
thresholds are present.
(#7221) -
Update
Acceptheader 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-SecondsHTTP request header.
(#7252) -
Use the canonical representation for histogram "le" label values when using
OpenMetrics.
(#7218) -
Add Prometheus text fallback
target_infooutput as a gauge.
(#7238) -
Merge colliding sanitized label keys.
([#7239](https://github.com/open-telemetry/opentelemetry-do...
-
core-1.16.0-rc.1
The following changes are from the previous release 1.15.3.
-
NuGet: OpenTelemetry v1.16.0-rc.1
-
Stop validating View-provided metric stream
Nameagainst the instrument
name syntax, per
spec clarification.
(#7300) -
Fix incorrect validation of
OTEL_BSP_*andOTEL_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
ExemplarReservoirimplementations.
Exceptions thrown fromOfferare now caught and logged rather than propagating
out ofCounter.Add/Histogram.Record.
(#7277) -
Update
OpenTelemetrySdkEventSourceto support the W3C randomness flag.
(#7301) -
Added
ObservedTimestampproperty toLogRecord.
(#6979) -
Breaking Change Explicit histogram boundaries no longer allow more than
10 million values.
(#7165) -
Fixed a circular reference which could cause a
LoggerProviderto fail to
resolve when one of its dependencies depends onILoggerorILoggerFactory.
As part of this fix theLoggerProviderresolved from dependency injection
is now created lazily when the first logger is created rather than when
ILoggerProviderorILoggerFactoryis 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
BaggagePropagatorto correctly follow Key and Value Encoding rules as per
the W3C Baggage specification.
#7051 -
Update
TraceContextPropagatorto support the W3C randomness flag.
(#7301) -
Fixed
TraceContextPropagatorto deduplicate duplicatetracestatekeys
instead of discarding the entiretracestateheader.
(#7309) -
Breaking change (pre-release only versions): The default value of
theTimestampproperty onLogRecordDatahas changed fromDateTime.UtcNow
toDateTime.MinValue.DateTime.MinValuerepresents 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.UtcNowexplicitly on theirLogRecordDatainstance.
(#7045) -
Added
ObservedTimestampproperty toLogRecordData. Note thatLogRecordData
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
ObservedTimestampwill 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
NullReferenceExceptionwhen exporting logs if the scope key is null.
(#7186) -
Added opt-in support for gzip compression. Compression can be configured
programmatically via the newOtlpExporterOptions.Compressionproperty,
or through the environment variables such asOTEL_EXPORTER_OTLP_COMPRESSION=gzip.
(#7055) -
Fixed disk retry data being stored incorrectly when using persistent storage
retry.
(#7228) -
Reverted
OtlpLogExporterfrom usingIHttpClientFactoryon .NET 8+ to fix
an issue with circular dependencies detected by some dependency injection
container implementations such as Autofac.
(#7234) -
Fixed
OtlpLogExporterintegration withIHttpClientFactoryso 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
IHttpClientFactorywhen mTLS is enabled.
(#7305) -
Handle
Retry-Afterresponse headers that specify a date instead of a delay.
(#7364) -
observed_time_unix_nanowill no longer always be identical totime_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-Afterdelay (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
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.LogLevelto preserveLogLevel.Noneand handle
unspecified or out-of-range severities without returning invalid enum values.
(#7092) -
Fixed
OTEL_TRACES_SAMPLER_ARGhandling to treat out-of-range,NaN, and
infinite values as invalid and fall back to the default ratio when using
traceidratioandparentbased_traceidratiosamplers.
(#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
tracestateparsing 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
BaggagePropagatorto trim optional whitespace (OWS) around=
separators when parsing thebaggageheader, as required by the
W3C Baggage specification.
(#7009) -
Fixed
BaggagePropagatorto strip baggage properties (e.g.;metadata)
from values when parsing thebaggageheader.
(#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
-
OtlpLogExporternow usesIHttpClientFactoryon .NET 8+, matching the
behaviour of the trace and metrics exporters.
(#7109) -
Fixed an issue in persistent storage cleanup where malformed
.blob,.tmp,
or.lockfilenames could throw and interrupt maintenance to resolve
GHSA-88hf-wf7h-7w4m.
(#7108) -
Breaking change: Fixed an insecure disk retry default. Disk retry now
requiresOTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATHwhen
OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY=diskis 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_PATHenvironment
variable to the value one of the following environment variables: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, andlogsdirectories.
(#7074) -
Fixed full OTLP endpoint being logged by internal diagnostics.
(#7116) -
Fix
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITnot being applied.
(#7115)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Exporter.Zipkin v1.15.3
- Harden memory usage for endpoint caching and array tag serialization to resolve
GHSA-88hf-wf7h-7w4m.
(#7081)
See CHANGELOG for details.
- Harden memory usage for endpoint caching and array tag serialization to resolve
-
NuGet: OpenTelemetry.Extensions.Hosting v1.15.3
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Propagators v1.15.3
- Improve efficiency of parsing of baggage, B3 and Jaeger propagation headers
to resolve GHSA-g94r-2vxg-569j.
(#7061)
See CHANGELOG for details.
- Improve efficiency of parsing of baggage, B3 and Jaeger propagation headers