Skip to content

Releases: open-telemetry/opentelemetry-dotnet

core-1.21.0-rc.1

core-1.21.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 28 Oct 15:33
Immutable release. Only release title and notes can be modified.
0887187

The following changes are from the previous release 1.20.1.

  • NuGet: OpenTelemetry v1.21.0-rc.1

    • Fixed a race in the self-diagnostics sink dispatcher where disposing it
      while its pump thread was exiting could throw ArgumentNullException on
      .NET Framework.
      (#7983)

    • SelfDiagnosticsOptions is now automatically bound from the
      OpenTelemetry:SelfDiagnostics configuration section, when present.
      (#8008)

    • Fixed a race where collecting a metric with delta temporality concurrently
      with the creation of a new MetricPoint could reclaim the MetricPoint
      while it was being created, losing the measurement.
      (#8019)

    • Fixed a race where collecting a metric with delta temporality could export
      the same series twice in a single collection.
      (#8019)

    • Fixed wildcard matching timeouts that could prevent configured source, meter,
      legacy activity, or metric view patterns from matching.
      (#8014)

    • The timeout passed to MetricReader.Collect() (for example by
      MeterProvider.ForceFlush()), the ExportTimeoutMilliseconds of
      PeriodicExportingMetricReader and the ExporterTimeoutMilliseconds of
      BatchExportProcessor<T> are now made available to the exporter instead of
      being ignored once the export has started, so that the OTLP exporter can
      cancel an export which runs past the timeout. The ExportTimeoutMilliseconds
      of PeriodicExportingMetricReader now also limits exports which are not
      started by the reader itself, such as those of MeterProvider.ForceFlush().
      (#7996)

    • Fixed a race where collecting a cumulative metric concurrently with the
      creation of a new MetricPoint could export a MetricPoint that was not yet
      fully initialized, could case a NullReferenceException when enumerating Tags.
      (#8018)

    • Breaking Change Dropped support for net8.0 and net9.0.
      (#6899)

    • Add support for .NET 11.0.
      (#6899)

    • Added support for enabling ActivitySources from configuration using the
      Microsoft.Extensions.Diagnostics tracing APIs introduced in .NET 11 (for
      example, services.AddTracing(b => b.AddConfiguration(section))).
      Activities from sources enabled this way are processed by the OpenTelemetry
      TracerProvider registered through AddOpenTelemetry().WithTracing().
      Not supported when targeting net10.0.
      (#6899)

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    • Breaking Change Dropped support for net8.0 and net9.0.
      (#6899)

    • Add support for .NET 11.0.
      (#6899)

    See CHANGELOG for details.

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

    • Fixed byte[]-valued tags being serialized as a JSON array of numbers
      (e.g. [1,2,3]) instead of being Base64-encoded as per the specification.
      (#7694)

    • Fixed array-valued tags containing NaN or infinite floating-point values
      being exported as TRUNCATED; such values are now written as JSON strings
      (e.g. ["NaN"]). Arrays and maps nested inside array-valued tags are now
      written as nested JSON (with byte[] values Base64-encoded) instead of as
      their .NET type name (e.g. System.Int32[]).
      (#7694)

    • Fixed arrays of string-valued key/value pairs being
      serialized as JSON arrays of strings instead of JSON objects.
      (#7694)

    See CHANGELOG for details.

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

    • Breaking Change Dropped support for net8.0 and net9.0.
      (#6899)

    • Add support for .NET 11.0.
      (#6899)

    See CHANGELOG for details.

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

    • Fixed experimental in-memory retries exceeding the export timeout when a
      retried request stalls.
      (#7977)

    • Breaking: The span status description (Activity.StatusDescription or
      the otel.status_description tag) is now truncated to the configured span
      attribute value length limit (for example
      OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) instead of being exported in full.
      (#7995)

    • Redacted nonstandard OTLP endpoint paths in internal diagnostic logs with
      [REDACTED], while retaining standard HTTP and gRPC service paths.
      (#8016)

    • Fixed exports continuing until OtlpExporterOptions.TimeoutMilliseconds
      elapsed when a shorter timeout applied to them, such as the timeout passed
      to MeterProvider.ForceFlush(),
      PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds
      (OTEL_METRIC_EXPORT_TIMEOUT) or
      BatchExportProcessorOptions<T>.ExporterTimeoutMilliseconds
      (OTEL_BSP_EXPORT_TIMEOUT, OTEL_BLRP_EXPORT_TIMEOUT). The request is now
      canceled when the shorter of the timeouts elapses. The time taken to
      serialize the telemetry now counts towards the timeout, and no request is
      sent once it has elapsed.
      (#7996)

    • Fixed arrays of string-valued key/value pairs being
      exported as arrays of strings instead of maps.
      (#7694)

    • Breaking Change Dropped support for net8.0 and net9.0.
      (#6899)

    • Add support for .NET 11.0.
      (#6899)

    See CHANGELOG for details.

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

    • Fixed array-valued tags containing NaN or infinite floating-point values
      being exported as TRUNCATED; such values are now written as JSON strings
      (e.g. ["NaN"]). Arrays and maps nested inside array-valued tags are now
      written as nested JSON (with byte[] values Base64-encoded) instead of as
      their .NET type name (e.g. System.Int32[]).
      (#7694)

    • Fixed arrays of string-valued key/value pairs being
      serialized as JSON arrays of strings instead of JSON objects.
      (#7694)

    See CHANGELOG for details.

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

    • The OpenTelemetry providers are now initialized in
      IHostedLifecycleService.StartingAsync instead of IHostedService.StartAsync
      so that telemetry emitted by other hosted services during StartingAsync is
      captured. ITelemetryHostInitializer.Initialize() is invoked only once per
      host start.
      (#7998)

    • Breaking Change Dropped support for net8.0 and net9.0.
      (#6899)...

Read more

core-1.20.1

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 20 Oct 11:41
Immutable release. Only release title and notes can be modified.
0bfd4c3

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

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#7968)

    • Self-diagnostics messages written to the sinks configured by
      SelfDiagnosticsOptions are now truncated to 16,384 characters so that the
      memory used by entries waiting to be written is bounded.
      (#7969)

    • The self-diagnostics file sink now creates its log directory and log files
      so that only the owner can access them (0700/0600) on Linux and macOS,
      instead of inheriting the process umask.
      (#7967)

    • Fixed pooled log records retaining completed log data until reused.
      (#7978)

    • Fixed slow metric recording when distinct wide tag values, such as long or
      Guid, share the same built-in hash code.
      (#7979)

    • Fixed ObservableCounter and ObservableUpDownCounter overflow points
      reporting only the last observation instead of the sum for each collection.
      (#7985)

    • Fixed replaced log attributes being exported together with their original
      values when buffering or updating LogRecord.State.
      (#7987)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.20.1

    • Fixed TracerProvider.GetTracer caching a new tracer for each call with equal
      array-valued scope tags.
      (#7960)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.20.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.20.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.20.1

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.20.1

    • Fixed informational HTTP client logs not being suppressed by default when the
      OTLP log exporter is registered using OpenTelemetryLoggerOptions.AddOtlpExporter.
      (#7959)

    • Breaking: HttpClient instances created by the exporter directly no
      longer follow HTTP redirects. A 3xx response is now treated as a failed
      export. See Configure HttpClient
      to prevent HttpClient created by IHttpClientFactory from following
      redirects.
      (#7958)

    • The value of OTEL_EXPORTER_OTLP_ENDPOINT, or of its signal-specific
      variants, is no longer written to the exporter's diagnostic log when it is
      not a valid URI.
      (#7971)

    • Hardened the experimental disk retry feature.

      • When running on .NET on non-Windows platforms, the retry directory and
        the blob files within it are now created accessible to the current user
        only, including when the directory is recreated after being deleted.
      • Directory size accounting no longer follows subdirectories, avoiding
        a symbolic-link/junction walk.
      • Expired lease-file cleanup now correctly locates the lease timestamp
        delimiter within the file name rather than the whole path.
      • Storage maintenance no longer deletes or renames files with a .blob,
        .tmp or .lock extension that the exporter did not create when the
        retry directory is shared with other files. Only files named the way the
        exporter names its blobs, and the temporary and lease files derived from
        them, are now removed or renamed, and only blobs named that way are now
        retried.
      • Timestamps in blob and lease file names are now always written using the
        Gregorian calendar. Previously, when the current culture used a different
        calendar, files were given timestamps that caused them never to be
        removed or released when the storage was maintained.
      • A stored request whose lease has expired is no longer deleted after it has
        been retried, as it may have since been leased again for another retry.
      • Stored blobs that are empty or that are larger than the maximum size of
        the storage are no longer read. When running on .NET, stored blobs that
        are symbolic links are also no longer read.
        (#7857)
    • Only the first 4 KiB of the body of an unsuccessful response is now read and
      written to the exporter's diagnostic log, instead of up to
      MaxResponseSizeBytes.
      (#7969)

    • Fixed reading the body of a failed export response for the exporter's
      diagnostic log not being bounded by the export timeout.
      (#7970)

    • Fixed the body of a failed export response never being written to the
      exporter's diagnostic log when running on .NET Framework.
      (#7970)

    • Fixed attributes whose value is converted with ToString() (for example
      enums, Uri or StringValues) being dropped as unsupported, and for metric
      data points omitted from every later export, when the export buffer had to
      be resized while the attribute was being written.
      (#7973)

    • Breaking: Fixed telemetry stored by the experimental disk retry feature
      for one exporter being resent by another exporter for the same signal to ...

Read more

coreunstable-1.20.1-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 20 Oct 13:02
Immutable release. Only release title and notes can be modified.
2f735d9

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

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

    • Fixed scrape responses being handed to the server in a single write, which
      made the server buffer a full copy of the response for each client that did
      not read it until the request completed or timed out. Responses are now
      written in bounded slices so the server's back-pressure applies.
      (#7957)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#7990)

    See CHANGELOG for details.

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

    • Fixed scrape responses being handed to the server in a single write, which
      on Linux and macOS made the listener allocate and hold a full copy of the
      response for each client that did not read it until the request completed or
      timed out. Responses are now written in bounded slices.
      (#7957)

    • Fixed scrape requests that announce a request body holding a thread pool
      thread after their response had been sent on Linux and macOS for as long as
      the client kept trickling in the body. The connection is now closed after
      responding to a request with a body instead of being kept alive.
      (#7962)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#7990)

    See CHANGELOG for details.

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

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#7990)

    See CHANGELOG for details.

core-1.20.1-rc.1

core-1.20.1-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 20 Oct 10:45
Immutable release. Only release title and notes can be modified.
d69951e

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1-rc.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#7968)

    • Self-diagnostics messages written to the sinks configured by
      SelfDiagnosticsOptions are now truncated to 16,384 characters so that the
      memory used by entries waiting to be written is bounded.
      (#7969)

    • The self-diagnostics file sink now creates its log directory and log files
      so that only the owner can access them (0700/0600) on Linux and macOS,
      instead of inheriting the process umask.
      (#7967)

    • Fixed pooled log records retaining completed log data until reused.
      (#7978)

    • Fixed slow metric recording when distinct wide tag values, such as long or
      Guid, share the same built-in hash code.
      (#7979)

    • Fixed ObservableCounter and ObservableUpDownCounter overflow points
      reporting only the last observation instead of the sum for each collection.
      (#7985)

    • Fixed replaced log attributes being exported together with their original
      values when buffering or updating LogRecord.State.
      (#7987)

    See CHANGELOG for details.

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

    • Fixed TracerProvider.GetTracer caching a new tracer for each call with equal
      array-valued scope tags.
      (#7960)

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    • Fixed informational HTTP client logs not being suppressed by default when the
      OTLP log exporter is registered using OpenTelemetryLoggerOptions.AddOtlpExporter.
      (#7959)

    • Breaking: HttpClient instances created by the exporter directly no
      longer follow HTTP redirects. A 3xx response is now treated as a failed
      export. See Configure HttpClient
      to prevent HttpClient created by IHttpClientFactory from following
      redirects.
      (#7958)

    • The value of OTEL_EXPORTER_OTLP_ENDPOINT, or of its signal-specific
      variants, is no longer written to the exporter's diagnostic log when it is
      not a valid URI.
      (#7971)

    • Hardened the experimental disk retry feature.

      • When running on .NET on non-Windows platforms, the retry directory and
        the blob files within it are now created accessible to the current user
        only, including when the directory is recreated after being deleted.
      • Directory size accounting no longer follows subdirectories, avoiding
        a symbolic-link/junction walk.
      • Expired lease-file cleanup now correctly locates the lease timestamp
        delimiter within the file name rather than the whole path.
      • Storage maintenance no longer deletes or renames files with a .blob,
        .tmp or .lock extension that the exporter did not create when the
        retry directory is shared with other files. Only files named the way the
        exporter names its blobs, and the temporary and lease files derived from
        them, are now removed or renamed, and only blobs named that way are now
        retried.
      • Timestamps in blob and lease file names are now always written using the
        Gregorian calendar. Previously, when the current culture used a different
        calendar, files were given timestamps that caused them never to be
        removed or released when the storage was maintained.
      • A stored request whose lease has expired is no longer deleted after it has
        been retried, as it may have since been leased again for another retry.
      • Stored blobs that are empty or that are larger than the maximum size of
        the storage are no longer read. When running on .NET, stored blobs that
        are symbolic links are also no longer read.
        (#7857)
    • Only the first 4 KiB of the body of an unsuccessful response is now read and
      written to the exporter's diagnostic log, instead of up to
      MaxResponseSizeBytes.
      (#7969)

    • Fixed reading the body of a failed export response for the exporter's
      diagnostic log not being bounded by the export timeout.
      (#7970)

    • Fixed the body of a failed export response never being written to the
      exporter's diagnostic log when running on .NET Framework.
      (#7970)

    • Fixed attributes whose value is converted with ToString() (for example
      enums, Uri or StringValues) being dropped as unsupported, and for metric
      data points omitted from every later export, when the export buffer had to
      be resized while the attribute was being written.
      (#7973)

    • Breaking: Fixed telemetry stored by the experimental disk retry feature
      for one exporter being resent by another exporter for the same signal to its
      own endpoint and with its own headers. Disk retry storage is now additionally
      separated by a subdirectory derived fr...

Read more

core-1.20.0

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 15 Oct 13:54
Immutable release. Only release title and notes can be modified.
d5b2f8a

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

The following changes are from the previous release 1.19.1.

  • NuGet: OpenTelemetry v1.20.0

    • Fixed SuppressInstrumentationScope reference counts leaking between inherited asynchronous execution contexts.
      (#7803)

    • Self-diagnostic features are explicitly disabled on browser-based platforms (e.g. Blazor) and are now non-functional. Previously, attempting to enable self-diagnostics on such platforms would result in an exception at runtime.
      (#7799)

    • Added TracerProviderBuilder.ConfigureSampler which receives the resolved Sampler whether set programmatically, via OTEL_TRACES_SAMPLER, or by default, and returns a replacement. Intended for library authors who need to influence sampling without overriding a sampler the application has configured.
      (#7780)

    • Fixed ResourceBuilder.CreateDefault ignoring OTEL_RESOURCE_ATTRIBUTES and OTEL_SERVICE_NAME environment variables when the host IConfiguration does not contain those settings.
      (#7855)

    • Added improved self-diagnostics logging to improve the support experience. The new SelfDiagnosticsOptions class configures a rolling file sink and a console sink through the standard options pipeline. Sinks are off by default.
      (#7588)

    • Fixed a race that could incorrectly route a concurrent metric measurement to the overflow point when its tag set was published as the cardinality limit was reached.
      (#7804)

    • Added OpenTelemetryLoggerOptions.Version and OpenTelemetryLoggerOptions.SchemaUrl options to set an instrumentation library version and schema URL applied to logs emitted via the Microsoft.Extensions.Logging ILogger integration.
      (#7727)

    • Fixed LogRecord.CategoryName resetting the current Logger's Version to null when set to a new value.
      (#7727)

    • Bounded the internal cache of Logger scopes keyed by instrumentation to avoid unbounded growth.
      (#7727)

    • Fixed the MeterProvider and its IServiceProvider being kept alive after the host is disposed when using Microsoft.Extensions.Diagnostics versions prior to 9.0, which never dispose their MetricsSubscriptionManager (and its underlying MeterListener).
      (#7924)

    • Fixed a race condition between recording a measurement and collecting a histogram with delta temporality that could cause an empty data point (with a count of zero) to be exported in the next collection cycle.
      (#7923)

    • Improved metric collection performance after metric streams are removed by compacting metric storage during collection.
      (#7945)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api v1.20.0

    • Added Logger.SchemaUrl and a LoggerProvider.GetLogger overload accepting a schema URL parameter using the new LoggerOptions type.
      (#7727)

    • Breaking change (pre-release only versions): LoggerProvider's protected TryCreateLogger(string? name, out Logger? logger) extensibility method has been replaced by TryCreateLogger(LoggerOptions options, out Logger? logger). Custom LoggerProvider subclasses that override the previous overload must update to override the new one; the old overload is no longer called.
      (#7727)

    • Optimize performance of BaggagePropagator.Inject on .NET Framework using lookup tables.
      (#7947)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.20.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Console v1.20.0

    • ConsoleLogRecordExporter now writes an Instrumentation scope (Logger) section (Name, Version, and Schema URL) for each exported LogRecord.
      (#7727)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.InMemory v1.20.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.20.0

    • Avoid closure allocations when serializing cached metric metadata.
      (#7841)

    • Custom TLS certificate options (custom CA trust and mTLS) and the experimental disk retry feature are explicitly marked as not supported on browser-based platforms (e.g. Blazor).
      (#7799)

    • Suppressed informational HTTP client logs from OTLP exporters by default. See HttpClient logging for configuration overrides.
      (#7743)

    • Avoid logging malformed HTTP request headers in the exporter's diagnostic log.
      (#7858)

    • Avoid buffering the whole compressed request body in memory before sending it on .NET Framework when using HTTP/protobuf with gzip compression.
      (#7879)

    • The OTLP log exporter now exports schema_url on ScopeLogs. Log records emitted from a Logger with a schema URL set now populate ScopeLogs.schema_url in exported OTLP requests.
      (#7727)

    • Breaking: byte[] attributes longer than the configured attribute value length limit (for example OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT) are now truncated to that many bytes instead of being exported in full.
      (#7893)

    • Breaking: OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT and OTEL_LINK_ATTRIBUTE_COUNT_LIMIT now fall back to OTEL_ATTRIBUTE_COUNT_LIMIT (then the default of 128) when not set, instead of falling back to OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT.
      (#7894)

    • Breaking: Instrumentation scope attributes exported from ActivitySource.Tags are now limited by OTEL_ATTRIBUTE_COUNT_LIMIT instead of OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT. Only applications that set OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT to a different value from OTEL_ATTRIBUTE_COUNT_LIMIT are affected.
      (#7902)

    • Fixed log records being dropped when using OtlpExportProtocol.HttpProtobuf with IHttpClientFactory integration if the first export of logs happens while the IServiceProvider is being disposed. The exporter now falls back to the default HttpClient instead of failing the export.
      (#7916)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Zipkin v1.20.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Hosting v1.20.0

    No notable changes.

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Extensions.Propagators v1.20.0

    No notable changes.

...

Read more

coreunstable-1.20.0-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 15 Oct 15:29
Immutable release. Only release title and notes can be modified.
a80175e

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

core-1.20.0-rc.1

core-1.20.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 15 Oct 11:14
Immutable release. Only release title and notes can be modified.
860cf46

The following changes are from the previous release 1.19.1.

  • NuGet: OpenTelemetry v1.20.0-rc.1

    • Fixed SuppressInstrumentationScope reference counts leaking between inherited asynchronous execution contexts.
      (#7803)

    • Self-diagnostic features are explicitly disabled on browser-based platforms (e.g. Blazor) and are now non-functional. Previously, attempting to enable self-diagnostics on such platforms would result in an exception at runtime.
      (#7799)

    • Added TracerProviderBuilder.ConfigureSampler which receives the resolved Sampler whether set programmatically, via OTEL_TRACES_SAMPLER, or by default, and returns a replacement. Intended for library authors who need to influence sampling without overriding a sampler the application has configured.
      (#7780)

    • Fixed ResourceBuilder.CreateDefault ignoring OTEL_RESOURCE_ATTRIBUTES and OTEL_SERVICE_NAME environment variables when the host IConfiguration does not contain those settings.
      (#7855)

    • Added improved self-diagnostics logging to improve the support experience. The new SelfDiagnosticsOptions class configures a rolling file sink and a console sink through the standard options pipeline. Sinks are off by default.
      (#7588)

    • Fixed a race that could incorrectly route a concurrent metric measurement to the overflow point when its tag set was published as the cardinality limit was reached.
      (#7804)

    • Added OpenTelemetryLoggerOptions.Version and OpenTelemetryLoggerOptions.SchemaUrl options to set an instrumentation library version and schema URL applied to logs emitted via the Microsoft.Extensions.Logging ILogger integration.
      (#7727)

    • Fixed LogRecord.CategoryName resetting the current Logger's Version to null when set to a new value.
      (#7727)

    • Bounded the internal cache of Logger scopes keyed by instrumentation to avoid unbounded growth.
      (#7727)

    • Fixed the MeterProvider and its IServiceProvider being kept alive after the host is disposed when using Microsoft.Extensions.Diagnostics versions prior to 9.0, which never dispose their MetricsSubscriptionManager (and its underlying MeterListener).
      (#7924)

    • Fixed a race condition between recording a measurement and collecting a histogram with delta temporality that could cause an empty data point (with a count of zero) to be exported in the next collection cycle.
      (#7923)

    • Improved metric collection performance after metric streams are removed by compacting metric storage during collection.
      (#7945)

    See CHANGELOG for details.

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

    • Added Logger.SchemaUrl and a LoggerProvider.GetLogger overload accepting a schema URL parameter using the new LoggerOptions type.
      (#7727)

    • Breaking change (pre-release only versions): LoggerProvider's protected TryCreateLogger(string? name, out Logger? logger) extensibility method has been replaced by TryCreateLogger(LoggerOptions options, out Logger? logger). Custom LoggerProvider subclasses that override the previous overload must update to override the new one; the old overload is no longer called.
      (#7727)

    • Optimize performance of BaggagePropagator.Inject on .NET Framework using lookup tables.
      (#7947)

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    • ConsoleLogRecordExporter now writes an Instrumentation scope (Logger) section (Name, Version, and Schema URL) for each exported LogRecord.
      (#7727)

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    • Avoid closure allocations when serializing cached metric metadata.
      (#7841)

    • Custom TLS certificate options (custom CA trust and mTLS) and the experimental disk retry feature are explicitly marked as not supported on browser-based platforms (e.g. Blazor).
      (#7799)

    • Suppressed informational HTTP client logs from OTLP exporters by default. See HttpClient logging for configuration overrides.
      (#7743)

    • Avoid logging malformed HTTP request headers in the exporter's diagnostic log.
      (#7858)

    • Avoid buffering the whole compressed request body in memory before sending it on .NET Framework when using HTTP/protobuf with gzip compression.
      (#7879)

    • The OTLP log exporter now exports schema_url on ScopeLogs. Log records emitted from a Logger with a schema URL set now populate ScopeLogs.schema_url in exported OTLP requests.
      (#7727)

    • Breaking: byte[] attributes longer than the configured attribute value length limit (for example OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT) are now truncated to that many bytes instead of being exported in full.
      (#7893)

    • Breaking: OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT and OTEL_LINK_ATTRIBUTE_COUNT_LIMIT now fall back to OTEL_ATTRIBUTE_COUNT_LIMIT (then the default of 128) when not set, instead of falling back to OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT.
      (#7894)

    • Breaking: Instrumentation scope attributes exported from ActivitySource.Tags are now limited by OTEL_ATTRIBUTE_COUNT_LIMIT instead of OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT. Only applications that set OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT to a different value from OTEL_ATTRIBUTE_COUNT_LIMIT are affected.
      (#7902)

    • Fixed log records being dropped when using OtlpExportProtocol.HttpProtobuf with IHttpClientFactory integration if the first export of logs happens while the IServiceProvider is being disposed. The exporter now falls back to the default HttpClient instead of failing the export.
      (#7916)

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    No notable changes.

    See CHANGELOG for details.

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

    No notable changes.

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

Read more

core-1.19.1

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Sep 08:34
Immutable release. Only release title and notes can be modified.
5fbeba3

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

The following changes are from the previous release 1.19.0.

coreunstable-1.19.1-beta.1

Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Sep 11:17
Immutable release. Only release title and notes can be modified.
2207f8a

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

core-1.19.1-rc.1

core-1.19.1-rc.1 Pre-release
Pre-release

Choose a tag to compare

@otelbot-dotnet otelbot-dotnet released this 21 Sep 07:12
Immutable release. Only release title and notes can be modified.
7d07c9c

The following changes are from the previous release 1.19.0.