Skip to content

Update OpenTelemetry - #5909

Open
dependencyupdates[bot] wants to merge 1 commit into
masterfrom
renovate/open-telemetry
Open

dependencyupdates[bot] wants to merge 1 commit into
masterfrom
renovate/open-telemetry

Conversation

@dependencyupdates

@dependencyupdates dependencyupdates Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
OpenTelemetry.Exporter.Console (source) 1.18.0 → 1.20.1 age adoption passing confidence
OpenTelemetry.Exporter.OpenTelemetryProtocol (source) 1.17.0 → 1.20.1 age adoption passing confidence
OpenTelemetry.Exporter.OpenTelemetryProtocol (source) 1.18.0 → 1.20.1 age adoption passing confidence
OpenTelemetry.Extensions.Hosting (source) 1.17.0 → 1.20.1 age adoption passing confidence
OpenTelemetry.Extensions.Hosting (source) 1.18.0 → 1.20.1 age adoption passing confidence
OpenTelemetry.Instrumentation.AspNetCore (source) 1.12.0 → 1.20.0 age adoption passing confidence
OpenTelemetry.Instrumentation.AspNetCore (source) 1.18.0 → 1.20.0 age adoption passing confidence
OpenTelemetry.Instrumentation.Http (source) 1.12.0 → 1.20.0 age adoption passing confidence
OpenTelemetry.Instrumentation.Http (source) 1.18.0 → 1.20.0 age adoption passing confidence
OpenTelemetry.Instrumentation.Runtime (source) 1.18.0 → 1.20.0 age adoption passing confidence

Release Notes

open-telemetry/opentelemetry-dotnet (OpenTelemetry.Exporter.Console)

v1.20.1

Release details: 1.20.1

  • Breaking change HttpClient instances created directly by the OTLP
    exporter no longer follow HTTP redirects. A 3xx response is now treated as
    a failed export. See the OTLP exporter README to prevent an HttpClient
    created by IHttpClientFactory from following redirects.
  • Breaking change The experimental OTLP disk retry storage is now separated
    per destination, derived from the exporter's Protocol, Endpoint and
    Headers. This prevents telemetry stored by one exporter being resent by
    another exporter to its own endpoint with its own headers. Telemetry stored on
    disk by earlier versions is not resent.
  • Improved how values near a bucket boundary are assigned to exponential
    histogram buckets by using a pre-computed lookup table.
  • Invalid OTEL_EXPORTER_OTLP_ENDPOINT (and signal-specific) and
    OTEL_EXPORTER_ZIPKIN_ENDPOINT values are no longer written to the
    exporter's diagnostic log.
  • Hardened the experimental OTLP disk retry feature:
    • On non-Windows platforms the retry directory and blob files are now
      accessible to the current user only.
    • Only files named the way the exporter names its blobs are now retried,
      removed or renamed. This matters when the retry directory is shared with
      other files.
    • Blobs that are empty, larger than the maximum storage size, or (on .NET)
      symbolic links are no longer read, and subdirectories are no longer
      followed when calculating the size of the directory.
    • Fixed files never being cleaned up when the current culture uses a
      non-Gregorian calendar, and fixed expired leases being located and released
      incorrectly.
  • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
    or SelfDiagnosticsOptions, are now always created as new files.
  • Self-diagnostics messages written to SelfDiagnosticsOptions sinks are now
    truncated to 16,384 characters. Only the first 4 KiB of the body of an
    unsuccessful OTLP export response is now read and written to the exporter's
    diagnostic log.
  • On Linux and macOS, the self-diagnostics log directory and files can now only
    be accessed by their owner (0700/0600) instead of inheriting the process
    umask.
  • OTLP exponential histogram bucket counts are now serialized using packed
    encoding, which reduces the size of the exported payload.
  • Fixed a possible race condition on ARM64 when multiple threads record the
    first measurement with no tags, or the first overflow measurement, at the
    same time.
  • Fixed the Prometheus exporters handing scrape responses to the server in a
    single write. For each client that did not read the response, the server held
    a full copy of it until the request completed or timed out (for HttpListener,
    only on Linux and macOS). Responses are now written in bounded slices.
  • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
    and prefixed JWTs.
  • Fixed TracerProvider.GetTracer caching a new tracer on every call that
    passes equal array-valued scope tags.
  • Fixed informational HTTP client logs not being suppressed by default when the
    OTLP log exporter is registered using OpenTelemetryLoggerOptions.AddOtlpExporter.
  • Fixed legacy self-diagnostics logging terminating the process when the log
    file is truncated or its volume runs out of space.
  • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
    instrumentation suppression, which could cause recursive exports or deadlocks.
  • Fixed Prometheus HttpListener scrape requests that announce a request body
    holding a thread pool thread on Linux and macOS for as long as the client
    kept sending the body slowly after the response was sent. The connection is
    now closed after responding to a request with a body.
  • Fixed delta double counters losing later measurements after a non-finite or
    large value, and idle metric points with a NaN value not being reclaimed.
  • 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.
  • Fixed a SuppressInstrumentationScope.Enter() reference count never being
    released when the Activity it was entered for is not recorded. This caused
    all later telemetry in that execution context to be suppressed.
  • Fixed reading the body of a failed OTLP export response for the diagnostic
    log not being bounded by the export timeout, and the body never being logged
    on .NET Framework.
  • Fixed OTLP attributes whose value is converted with ToString() (for example
    enums, Uri or StringValues) being dropped when the export buffer was
    resized while the attribute was being written. For metric data points, the
    attribute was also left out of every later export.
  • Fixed pooled log records retaining completed log data until reused.
  • Fixed inline OTLP certificate or private key material being included in
    diagnostic events and exceptions when supplied instead of a file path.
  • Fixed slow metric recording when distinct wide tag values, such as long or
    Guid, share the same built-in hash code.
  • Fixed early metric collections permanently omitting resource attributes from
    later OTLP exports, and target_info and resource constant labels from later
    Prometheus scrape responses, while the MeterProvider is being built.
  • Fixed ObservableCounter and ObservableUpDownCounter overflow points
    reporting only the last observation instead of the sum of all observations
    for each collection.
  • Fixed replaced log attributes being exported together with their original
    values when buffering or updating LogRecord.State.

v1.20.0

Release details: 1.20.0

  • Breaking change 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.
  • Breaking change 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.
  • Breaking change 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.
  • 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).
  • 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.
  • Added Logger.SchemaUrl and a LoggerProvider.GetLogger overload accepting
    a schema URL parameter using the new LoggerOptions type.
  • ConsoleLogRecordExporter now writes an Instrumentation scope (Logger) section
    (Name, Version, and Schema URL) for each exported LogRecord.
  • 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.
  • 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).
  • Suppressed informational HTTP client logs from OTLP exporters by default.
  • Added improved self-diagnostics logging to improve the support experience.
  • Self-diagnostic features are explicitly disabled on browser-based platforms
    (e.g. Blazor) and are now non-functional.
  • Added TracerProviderBuilder.ConfigureSampler intended for library authors
    who need to influence sampling without overriding a sampler the application
    has configured.
  • Fixed SuppressInstrumentationScope reference counts leaking between
    inherited asynchronous execution contexts.
  • Fixed ResourceBuilder.CreateDefault ignoring OTEL_RESOURCE_ATTRIBUTES and
    OTEL_SERVICE_NAME environment variables when the host IConfiguration does
    not contain those settings.
  • 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.
  • Fixed LogRecord.CategoryName resetting the current Logger's Version to
    null when set to a new value.
  • Bounded the internal cache of Logger scopes keyed by instrumentation to
    avoid unbounded growth.
  • Fixed the MeterProvider and its IServiceProvider being kept alive after the
    host is disposed when using Microsoft.Extensions.Diagnostics versions prior
    to .NET 9.0.
  • Fixed a race condition between recording a measurement and collecting a
    histogram with delta temporality that could cause an empty data point to be exported.
  • Improved metric collection performance after metric streams are removed by
    compacting metric storage during collection.
  • Optimize performance of BaggagePropagator.Inject on .NET Framework using
    lookup tables.
  • Avoid closure allocations when serializing cached metric metadata.
  • Avoid logging malformed HTTP request headers in the exporter's diagnostic log.
  • Avoid buffering the whole compressed request body in memory before sending it
    on .NET Framework when using HTTP/protobuf with gzip compression.
  • 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.
  • Dozens of other minor performance improvements.

v1.19.1

Release details: 1.19.1

  • Fixed NotSupportedException thrown when building a TracerProvider or
    MeterProvider with a large number of wildcard source/meter patterns on
    net8.0, and a related OutOfMemoryException that could occur when many
    such providers were built over the lifetime of a process.

v1.19.0

Release details: 1.19.0

  • Added Schema URL to internally created Resource instances.
  • Added AlwaysRecordSampler.
  • Added an AddOpenTelemetry extension method for IHostApplicationBuilder. It
    registers the OpenTelemetry SDK services and additionally seeds service.name
    from IHostEnvironment.ApplicationName and deployment.environment.name from
    IHostEnvironment.EnvironmentName as low-priority resource defaults. It also
    registers the host's live configuration into DI so that extensions receiving
    only IServiceCollection can contribute configuration sources during setup.
  • Extended key/value list attribute handling to cover additional dictionary
    shapes (IEnumerable<KeyValuePair<string, string?>> and IDictionary). These
    attributes will be serialized as JSON objects or kvlist, as appropriate.
  • If an exception is thrown when serializing an attribute, the attribute will now
    be dropped.
  • Disable HttpClientFactory integration on browser WebAssembly (e.g. Blazor)
    environments to avoid stalled export requests when async HTTP handlers are used.
  • Fixed CA certificate loading (e.g. using OTEL_EXPORTER_OTLP_CERTIFICATE) for
    PEM-encoded certificates that only contain a public key.
  • Fixed CircularBufferBuckets so the first delta histogram insertion after a
    reset does not result in an unnecessary scale reduction.
  • Fixed lazy logger provider builds after a failure from reusing partially
    initialized provider state.
  • Fixed parsing of an inbound tracestate header whose member value trimmed to
    an empty value that previously threw an IndexOutOfRangeException internally
    and could silently truncate the tracestate.
  • Prevented oversized metric metadata from being cached when it cannot fit within
    the configured request size.
  • Reduced allocations when formatting self-diagnostics events with up to three parameters.
  • Improved wildcard source/meter name matching to avoid excessive matching time
    at runtime.
  • Reduced allocations when creating log record attributes from an array.
  • Reduced allocations when setting baggage through the params overload.
  • Reduced allocations when constructing SpanAttributes from an array.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Commands to ignore dependencies

You can trigger dependency actions by commenting on this PR:

  • @particularbot ignore this major version
  • @particularbot ignore this minor version
  • @particularbot ignore this dependency

@dependencyupdates dependencyupdates Bot added dependencies Pull requests that update a dependency file NuGet labels Sep 18, 2026
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/open-telemetry branch 2 times, most recently from 95e2015 to ed38062 Compare September 21, 2026 09:34
@dependencyupdates dependencyupdates Bot changed the title Update OpenTelemetry to 1.19.0 Update OpenTelemetry Sep 21, 2026
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/open-telemetry branch from ed38062 to 7dd6280 Compare October 6, 2026 06:19
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/open-telemetry branch 2 times, most recently from 11657f0 to d0d9130 Compare October 15, 2026 21:27
@dependencyupdates dependencyupdates Bot changed the title Update OpenTelemetry Update OpenTelemetry to 1.20.0 Oct 15, 2026
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/open-telemetry branch 3 times, most recently from 8205191 to 6f334ae Compare October 19, 2026 13:36
@dependencyupdates
dependencyupdates Bot force-pushed the renovate/open-telemetry branch from 6f334ae to 3757c44 Compare October 20, 2026 15:28
@dependencyupdates dependencyupdates Bot changed the title Update OpenTelemetry to 1.20.0 Update OpenTelemetry Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file NuGet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants