Skip to content

Releases: open-telemetry/opentelemetry-dotnet

core-1.7.0-alpha.1

17 Oct 00:07
core-1.7.0-alpha.1
e66f4f3
Compare
Choose a tag to compare
core-1.7.0-alpha.1 Pre-release
Pre-release

OpenTelemetry

  • Update AggregatorStore to reclaim unused MetricPoints for Delta aggregation temporality. (#4486)

  • Fixed a bug where TracerProviderBuilderBase was not invoking the instrumentationFactory delegate passed to the protected
    AddInstrumentation method. (#4873)

  • Allowed metric instrument names to contain / characters. (#4882)

  • Breaking Change [Tracer|Meter|Logger]ProviderBuilder.Build extension will now throw a NotSupportedException if invoked on a non-SDK builder type. Previously it would return null. (#4885)

  • Updated Microsoft.Extensions.Logging package version to 8.0.0-rc.1.23419.4. (#4920, #4933)

OpenTelemetry.Api

  • Fixed a bug which caused Tracer.StartRootSpan to generate a child span if a trace was running (Activity.Current != null). (#4890)

  • Added a Tracer cache inside of TracerProvider to prevent repeated calls to GetTracer from leaking memory. (#4906)

  • Fix TraceContextPropagator by validating the first digit of the hex-encoded trace-flags field of the traceparent header. (#4893)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Bumped the version of Google.Protobuf used by the project to 3.22.5 so that consuming applications can be published as NativeAOT successfully. Also, a new performance feature can be used instead of reflection emit, which is not AOT-compatible. Removed the dependency on System.Reflection.Emit.Lightweight. (#4859)

  • Added support for OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT and OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT. (#4887)

  • Added ability to export attributes corresponding to LogRecord.Exception i.e. exception.type, exception.message and exception.stacktrace. These attributes will be exported when OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES environment variable will be set to true.

    NOTE: These attributes were removed in 1.6.0-rc.1 release in order to support stable release of OTLP Log Exporter. The attributes will now be available via environment variable mentioned above. (#4892)

  • Added ability to export attributes corresponding to LogRecord.EventId.Id as logrecord.event.id and LogRecord.EventId.Name as logrecord.event.name. The attributes will be exported when OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES will be set to true.

    NOTE: These attributes were removed in 1.6.0-rc.1 release in order to support stable release of OTLP Log Exporter. The attributes will now be available via environment variable mentioned above. (#4925)

  • LogRecord.CategoryName will now be exported as InstrumentationScope name field under ScopeLogs. (#4941)

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Fixed writing boolean values to use the JSON representation (#4823)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Fixed writing boolean values to use the JSON representation (#4823)

OpenTelemetry.Extensions.Hosting

  • Changed the behavior of the OpenTelemetryBuilder.AddOpenTelemetry extension to INSERT OpenTelemetry services at the beginning of the IServiceCollection in an attempt to provide a better experience for end users capturing telemetry in hosted services. Note that this does not guarantee that OpenTelemetry services will be initialized while other hosted services start, so it is possible to miss telemetry until OpenTelemetry services are fully initialized. (#4883)

1.6.0 / 1.6.0-beta.1

06 Sep 22:18
core-1.6.0
5cc1f39
Compare
Choose a tag to compare

1.6.0 release for core components

Note: The below only shows the changes that were added to the core components post 1.6.0-rc.1 release. If you're interested in knowing all of the changes that went into 1.6.0 release, please go through the Release notes of all the previous pre-release versions for 1.6.0.

OpenTelemetry

  • Increased the character limit of the Meter instrument name from 63 to 255.
    (#4774)

  • Update default size for SimpleExemplarReservoir to 1.
    (#4803)

1.6.0-beta.1 release for non-core components

Note: Instrumentation libraries were not included for 1.6.0-beta.1.

OpenTelemetry.Shims.OpenTracing

  • Fix: Do not raise ArgumentException if Activity behind the shim span
    has an invalid context.
    (#2787)
  • Obsolete TracerShim(Tracer, TextMapPropagator) constructor.
    Provide TracerShim(TracerProvider)
    and TracerShim(TracerProvider, TextMapPropagator) constructors.
    (#4812)

core-1.6.0-rc.1

21 Aug 20:33
core-1.6.0-rc.1
02269fb
Compare
Choose a tag to compare
core-1.6.0-rc.1 Pre-release
Pre-release

OpenTelemetry

  • Experimental Feature Added an opt-in feature to aggregate any metric
    measurements that were dropped due to reaching the max MetricPoints
    limit
    .
    When this feature is enabled, SDK would aggregate such measurements using a
    reserved MetricPoint with a single tag with key as otel.metric.overflow and
    value as true. The feature is turned-off by default. You can enable it by
    setting the environment variable
    OTEL_DOTNET_EXPERIMENTAL_METRICS_EMIT_OVERFLOW_ATTRIBUTE to true before
    setting up the MeterProvider.
    (#4737)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Excluded attributes corresponding to LogRecord.EventId,
    LogRecord.CategoryName and LogRecord.Exception from the exported data. This
    is done as the semantic conventions for these attributes are not yet stable.
    (#4781)

  • Added extension method for configuring export processor options for otlp log
    exporter.
    (#4733)

  • Added support for configuring the metric exporter's temporality using the
    environment variable OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE as
    defined in the
    specification.
    (#4667)

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Extensions.Hosting

  • Experimental (pre-release builds only): Added Logs Bridge
    API

    implementation (OpenTelemetryBuilder.WithLogging).
    (#4735)

1.5.1-beta.1 of instrumentation libraries

21 Jul 01:39
1.5.1-beta.1
1d3bb4b
Compare
Choose a tag to compare

For all the four instrumentation libraries: AspNetCore, HttpClient, GrpcNetClient, SqlClient:

  • The new HTTP and network semantic conventions can be opted in to by setting
    the OTEL_SEMCONV_STABILITY_OPT_IN environment variable. This allows for a
    transition period for users to experiment with the new semantic conventions
    and adapt as necessary. The environment variable supports the following
    values:
    • http - emit the new, frozen (proposed for stable) HTTP and networking
      attributes, and stop emitting the old experimental HTTP and networking
      attributes that the instrumentation emitted previously.
    • http/dup - emit both the old and the frozen (proposed for stable) HTTP
      and networking attributes, allowing for a more seamless transition.
    • The default behavior (in the absence of one of these values) is to continue
      emitting the same HTTP and network semantic conventions that were emitted in
      1.5.0-beta.1.
    • Note: this option will eventually be removed after the new HTTP and
      network semantic conventions are marked stable. At which time this
      instrumentation can receive a stable release, and the old HTTP and
      network semantic conventions will no longer be supported. Refer to the
      specification for more information regarding the new HTTP and network
      semantic conventions for both spans and metrics.

OpenTelemetry.Instrumentation.AspNetCore

  • Fixed an issue affecting NET 7.0+. If custom propagation is being used
    and tags are added to an Activity during sampling then that Activity would be dropped.
    (#4637)

1.6.0-alpha.1

12 Jul 22:06
core-1.6.0-alpha.1
b5e8361
Compare
Choose a tag to compare
1.6.0-alpha.1 Pre-release
Pre-release

OpenTelemetry

OpenTelemetry.Api

  • Updated System.Diagnostics.DiagnosticSource package version to 7.0.2.
    (#4576)

  • Breaking change In order to make RuntimeContext compatible with
    ahead-of-time compilation (AOT), RuntimeContext.ContextSlotType can only be
    assigned one of the following types: AsyncLocalRuntimeContextSlot<>,
    ThreadLocalRuntimeContextSlot<>, and RemotingRuntimeContextSlot<>. A
    System.NotSupportedException will be thrown if you try to assign any type
    other than the three types mentioned.
    (#4542)

  • Added Logs Bridge
    API

    implementation (LoggerProviderBuilder, LoggerProvider, Logger, etc.).
    (#4433)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Added extension methods to support using the Logs Bridge
    API

    implementation (eg LoggerProviderBuilder) with dependency injection.
    (#4433)

OpenTelemetry.Exporter.Console

  • Add back support for Exemplars. See
    exemplars for
    instructions to enable exemplars.
    (#4553)

  • Updated to display Severity and SeverityText text instead of
    ILogger.LogLevel when exporting LogRecord instances.
    (#4568)

  • Added LoggerProviderBuilder.AddConsoleExporter registration extension.
    (#4583)

OpenTelemetry.Exporter.InMemory

  • Added LoggerProviderBuilder.AddInMemoryExporter registration extension.
    (#4584)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Merged OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs package into
    OpenTelemetry.Exporter.OpenTelemetryProtocol. Going Forward,
    OpenTelemetry.Exporter.OpenTelemetryProtocol will be the only package needed
    for all 3 signals (Logs, Metrics, and Traces). All the changes made in
    OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
    are now included in this package.
    (#4556)

  • Add back support for Exemplars. See
    exemplars for
    instructions to enable exemplars.
    (#4553)

  • Updated Grpc.Net.Client to 2.45.0 to fix unobserved exception from failed
    calls.
    (#4573)

  • Updated to support Severity and SeverityText when exporting LogRecords.
    (#4568)

  • Updated Grpc.Net.Client to 2.52.0 to address the vulnerability reported by
    CVE-2023-32731. Refer to
    grpc/grpc#32309
    for more details.
    (#4647)

1.5.1

26 Jun 23:15
core-1.5.1
8d61691
Compare
Choose a tag to compare

OpenTelemetry

  • Fixed a breaking change causing LogRecord.State to be null where it was previously set to a valid value when OpenTelemetryLoggerOptions.ParseStateValues is false and states implement IReadOnlyList or IEnumerable of KeyValuePair<string, object>s. (#4609)

  • Breaking Change Removed the support for parsing TState types passed to the ILogger.Log<TState> API when ParseStateValues is true and TState does not implement either IReadOnlyList<KeyValuePair<string, object>> or IEnumerable<KeyValuePair<string, object>>. This feature was first introduced in the 1.5.0 stable release with #4334 and has been removed because it makes the OpenTelemetry .NET SDK incompatible with native AOT. (#4614)

1.5.0 / 1.5.0-beta.1

06 Jun 00:40
core-1.5.0
494323b
Compare
Choose a tag to compare

OpenTelemetry

  • Fixed a bug introduced by
    #4508 in
    1.5.0-rc.1 which caused the "Build" extension to return null when performing
    chained/fluent calls.
    (#4529)

  • Marked Exemplars and related APIs internal as the spec for Exemplars is
    not stable yet. This would be added back in the 1.6.* prerelease versions
    right after 1.5.0 stable version is released.
    (#4533)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Added an IServiceCollection.ConfigureOpenTelemetryMeterProvider overload
    which may be used to configure MeterProviderBuilders while the
    IServiceCollection is modifiable (before the IServiceProvider has been
    created).
    (#4517)

OpenTelemetry.Exporter.Console

  • Remove support for exporting Exemplars. This would be added back in the
    1.6.* prerelease versions right after 1.5.0 stable version is released.
    (#4533)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Remove support for exporting Exemplars. This would be added back in the
    1.6.* prerelease versions right after 1.5.0 stable version is released.
    (#4533)

OpenTelemetry.Instrumentation.AspNetCore

  • Fix issue where baggage gets cleared when the ASP.NET Core Activity
    is stopped. The instrumentation no longer clears baggage. One problem
    this caused was that it prevented Activity processors from accessing baggage
    during their OnEnd call.
    (#4274)

  • Added direct reference to System.Text.Encodings.Web with minimum version of
    4.7.2 due to CVE-2021-26701.
    This impacts target frameworks netstandard2.0 and netstandard2.1 which has a
    reference to Microsoft.AspNetCore.Http.Abstractions that depends on
    System.Text.Encodings.Web >= 4.5.0.
    (#4399)

  • Improve perf by avoiding boxing of common status codes values.
    (#4360,
    #4363)

OpenTelemetry.Instrumentation.Http

  • Fixed an issue of missing http.client.duration metric data in case of
    network failures (when response is not available).
    (#4098)

  • Improve perf by avoiding boxing of common status codes values.
    (#4361,
    #4363)

1.5.0-rc.1

25 May 23:49
core-1.5.0-rc.1
ba3a4fa
Compare
Choose a tag to compare
1.5.0-rc.1 Pre-release
Pre-release

OpenTelemetry

  • The default resource provided by ResourceBuilder.CreateDefault() now adds
    the telemetry.sdk.* attributes defined in the
    specification.
    (#4369)

  • Fixed an issue with HashCode computations throwing exceptions on .NET
    Standard 2.1 targets.
    (#4362)

  • Update value of the resource attribute telemetry.sdk.version to show the tag
    name which resembles the package version of the SDK.
    (#4375)

  • Obsoleted State and StateValues properties and added Body and
    Attributes properties on LogRecord. Note: LogRecord.Attributes and
    LogRecord.StateValues point to the same data. "Attributes" is what the
    OpenTelemetry Specification defines so this was changed for clarity &
    consistency with the specification.
    (#4334)

  • Tweaked the behavior of the OpenTelemetryLoggerOptions.ParseStateValues
    flag:

    • LogRecord.Attributes (aka LogRecord.StateValues) are now automatically
      included for all log messages with states implementing IReadOnlyList or
      IEnumerable.

    • OpenTelemetryLoggerOptions.ParseStateValues is now used to tell the SDK to
      parse (using reflection) attributes for custom states which do not implement
      IReadOnlyList or IEnumerable. Only top-level properties are included.

    • LogRecord.State will only be set to the raw state object if no attributes
      are found.

    See #4334
    for details.

  • If a template ({OriginalFormat} attribute) cannot be found on log messages a
    formatted message will now automatically be generated (even if
    OpenTelemetryLoggerOptions.IncludeFormattedMessage is set to false).
    (#4334)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Fixed a bug which prevented the
    TracerProviderBuilder.AddInstrumentation(IServiceProvider, TracerProvider)
    factory extension from being called during construction of the SDK
    TracerProvider.
    (#4468)

  • Added an IServiceCollection.ConfigureOpenTelemetryTracerProvider overload
    which may be used to configure TracerProviderBuilders while the
    IServiceCollection is modifiable (before the IServiceProvider has been
    created).
    (#4508)

OpenTelemetry.Exporter.Console

  • Add display of bucket boundaries when using exponential histograms.
    (#4507)

  • Added direct reference to System.Text.Encodings.Web with minimum version of
    4.7.2 in response to CVE-2021-26701.

  • Updated LogRecord console output: Body is now shown (if set),
    StateValues are now written as Attributes, and State is no longer
    processed.
    (#4334)

OpenTelemetry.Exporter.Jaeger

  • Added direct reference to System.Text.Encodings.Web with minimum version of
    4.7.2 in response to CVE-2021-26701.

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Revert version of Google.Protobuf to 3.19.4 (see
    #4201).
    This also reintroduces the System.Reflection.Emit.Lightweight dependency.
    (#4407)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

  • The OpenTelemetryLoggerOptions.AddOtlpExporter extension no longer
    automatically sets OpenTelemetryLoggerOptions.ParseStateValues to true.
    The OpenTelemetry SDK now automatically sets Attributes (aka StateValues)
    for the common cases where ParseStateValues was previously required.
    ParseStateValues can be set to true manually by users to enable parsing of
    custom states which do not implement IReadOnlyList / IEnumerable
    interfaces.
    (#4334)

  • Updated to use the new LogRecord.Attributes field as LogRecord.StateValues
    is now marked obsolete. There is no impact to transmitted data (StateValues
    and Attributes are equivalent).
    (#4334)

  • Fixed issue where the
    observed time
    field of the OTLP log record was not set. It is now correctly set to equal
    the
    time
    field.
    (#4444)

OpenTelemetry.Exporter.Zipkin

  • Added direct reference to System.Text.Encodings.Web with minimum version of
    4.7.2 in response to CVE-2021-26701.

1.5.0-alpha.2

31 Mar 23:34
core-1.5.0-alpha.2
7fcad19
Compare
Choose a tag to compare
1.5.0-alpha.2 Pre-release
Pre-release

OpenTelemetry

  • Enabling SetErrorStatusOnException on TracerProvider will now set the Status property on Activity to ActivityStatusCode.Error in case of an error. This will be done in addition to current behavior of setting otel.status_code tag on activity. (#4336)

  • Add support for configuring the Base2 Exponential Bucket Histogram Aggregation using the AddView API. This aggregation is supported by OTLP but not yet by Prometheus. (#4337)

  • Implementation of SuppressInstrumentationScope changed to improve performance. (#4304)

OpenTelemetry.Api

OpenTelemetry.Api.ProviderBuilderExtensions

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

  • Fixed issue where the MetricSnapshot of a histogram did not capture the min and max values. (#4306)

OpenTelemetry.Exporter.Jaeger

  • Enabled performance optimizations for .NET 6.0+ runtimes. (#4349)

OpenTelemetry.Exporter.OpenTelemetryProtocol

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Extensions.Hosting

OpenTelemetry.Extensions.Propagators

1.5.0-alpha.1 of all core components

07 Mar 23:42
6c580b3
Compare
Choose a tag to compare
Pre-release

OpenTelemetry

  • Added Exemplar support. See exemplars for instructions to enable exemplars.

  • Added AddDetector factory overload on ResourceBuilder. (#4261)

OpenTelemetry.Api

OpenTelemetry.Api.ProviderBuilderExtensions

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Bumped the version of Google.Protobuf used by the project to 3.22.0 so
    that a new performance feature can be used instead of reflection. Removed the
    dependency on System.Reflection.Emit.Lightweight.
    (#4201)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Extensions.Hosting

OpenTelemetry.Extensions.Propagators