github open-telemetry/opentelemetry-dotnet core-1.18.0

latest release: coreunstable-1.18.0-beta.1
13 hours ago

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

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

  • 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 for details.

Don't miss a new opentelemetry-dotnet release

NewReleases is sending notifications on new releases.