Skip to content

Releases: open-telemetry/opentelemetry-dotnet

Instrumentation.GrpcNetClient-1.8.0-beta.1

04 Apr 21:21
2c421a0
Compare
Choose a tag to compare
1.8.0-beta.1 of GrpcNetClient instrumentation library

core-1.8.0

02 Apr 18:02
fb74013
Compare
Choose a tag to compare

If you're interested in knowing all of the changes that went into 1.8.0 release, please go through the release notes of all the previous pre-release versions for 1.8.0:

Changes in 1.8.0:

OpenTelemetry.Exporter.Console

  • Added support for ActivitySource.Version property.
    (#5472)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • OtlpExporter will no longer throw an exception (even on .NET Core 3.1)
    when the System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport
    AppContext switch is NOT set AND using OtlpExportProtocol.Grpc
    to send to an insecure ("http") endpoint.
    System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport
    is not required to be set when using .NET 5 or newer.
    (#5486)

  • Replaced environment variable
    OTEL_DOTNET_EXPERIMENTAL_OTLP_ENABLE_INMEMORY_RETRY with
    OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY. OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY
    when set to in_memory will enable automatic retries in case of transient
    failures during data export to an OTLP endpoint.
    (#5495)

core-1.8.0-rc.1

27 Mar 22:26
aac1a01
Compare
Choose a tag to compare
core-1.8.0-rc.1 Pre-release
Pre-release

OpenTelemetry

  • TracerProviders can now have a sampler configured via the
    OTEL_TRACES_SAMPLER environment variable. The supported values are:
    always_off, always_on, traceidratio, parentbased_always_on,
    parentbased_always_off, and parentbased_traceidratio. The options
    traceidratio and parentbased_traceidratio may have the sampler probability
    configured via the OTEL_TRACES_SAMPLER_ARG environment variable.
    For details see: OpenTelemetry Environment Variable
    Specification
    .
    (#5448)

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Fix serializing scope_info when buffer overflows
    (#5407)

  • Add target_info to Prometheus exporters when using OpenMetrics
    (#5407)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Fix serializing scope_info when buffer overflows
    (#5407)

  • Add target_info to Prometheus exporters when using OpenMetrics
    (#5407)

OpenTelemetry.Exporter.Zipkin

  • Zipkin tags used for Instrumentation Library changed from otel.library.name and
    otel.library.version to otel.scope.name and otel.scope.version respectively.
    Old versions of attributes are deprecated, but still exported
    for backward compatibility.
    (#5473)

core-1.8.0-beta.1

14 Mar 23:21
core-1.8.0-beta.1
59f829d
Compare
Choose a tag to compare
core-1.8.0-beta.1 Pre-release
Pre-release

OpenTelemetry

  • Throw NotSupportedException when using SetErrorStatusOnException method for Tracing in Mono Runtime and Native AOT environment because the dependent Marshal.GetExceptionPointers() API is not supported on these platforms. (#5374)

  • Fixed an issue where LogRecord.Attributes (or LogRecord.StateValues alias) could become out of sync with LogRecord.State if either is set directly via the public setters. This was done to further mitigate issues introduced in 1.5.0 causing attributes added using custom processor(s) to be missing after upgrading. For details see:(#5169)

  • Fixed an issue where SimpleExemplarReservoir was not resetting internal state for cumulative temporality. (#5230)

  • Fixed an issue causing LogRecords to be incorrectly reused when wrapping an instance of BatchLogRecordExportProcessor inside another
    BaseProcessor<LogRecord> which leads to missing or incorrect data during export. (#5255)

  • Experimental (pre-release builds only): Added support for setting CardinalityLimit (the maximum number of data points allowed for a metric) when configuring a view (applies to individual metrics) and obsoleted MeterProviderBuilderExtensions.SetMaxMetricPointsPerMetricStream (previously applied to all metrics). The default cardinality limit for metrics remains at 2000. (#5312, #5328)

  • Updated LogRecord to keep CategoryName and Logger in sync when using the experimental Log Bridge API. #5317

  • Added OpenTelemetryBuilderSdkExtensions class which contains extension methods (ConfigureResource, WithMetrics, WithTracing, and experimental WithLogging) for the IOpenTelemetryBuilder interface. (#5265)

  • Added Microsoft.Extensions.Diagnostics.Abstractions dependency so that the IOpenTelemetryBuilder.WithMetrics extension method can configure IMetricsListener. (#5265)

  • Experimental (pre-release builds only): The Exemplar.FilteredTags property now returns a ReadOnlyFilteredTagCollection instance and the Exemplar.LongValue property has been added. The MetricPoint.GetExemplars method has been replaced by MetricPoint.TryGetExemplars which outputs a ReadOnlyExemplarCollection instance. These are breaking changes for metrics exporters which support exemplars. (#5386)

  • Experimental (pre-release builds only): Added support for exemplars when using Base2 Exponential Bucket Histogram Aggregation configured via the View API. (#5396)

  • Experimental (pre-release builds only): Removed the ExemplarFilter, AlwaysOffExemplarFilter, AlwaysOnExemplarFilter, and TraceBasedExemplarFilter APIs. The MeterProviderBuilder.SetExemplarFilter extension method now accepts an ExemplarFilterType enumeration (which contains definitions for the supported filter types AlwaysOff, AlwaysOn, and TraceBased) instead of an ExemplarFilter instance. This was done in response to changes made to the OpenTelemetry Metrics SDK Specification. (#5404)

  • Experimental (pre-release builds only): The ExemplarFilter used by SDK MeterProviders can now be controlled via the OTEL_METRICS_EXEMPLAR_FILTER environment variable. The supported values are: always_off, always_on, and trace_based. For details see: OpenTelemetry Environment Variable Specification. (#5412)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Added IOpenTelemetryBuilder interface to support authoring extensions which can configure multiple OpenTelemetry signals (tracing, metrics, and/or logs). (#5265)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Experimental (pre-release builds only): Added LoggerProviderBuilder.AddOtlpExporter registration extensions. #5103

  • Removed the OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES environment variable, following the stabilization of the exception attributes exception.type, exception.message, and exception.stacktrace in the OpenTelemetry Semantic Conventions. These attributes, corresponding to LogRecord.Exception, are now stable and will be automatically included in exports. (#5258)

  • Updated OtlpLogExporter to set body on the data model from LogRecord.Body if {OriginalFormat} attribute is NOT found and FormattedMessage is null. This is typically the case when using the
    experimental Logs Bridge API. (#5268)

  • Updated OtlpLogExporter to set instrumentation scope name on the data model from LogRecord.Logger.Name if LogRecord.CategoryName is null. This is typically the case when using the experimental Logs Bridge API. (#5300)

  • URL encoded values in OTEL_EXPORTER_OTLP_HEADERS are now correctly decoded as it is mandated by the specification. (#5316)

  • Experimental (pre-release builds only): Add support in OtlpMetricExporter for emitting exemplars supplied on Counters, Gauges, and
    ExponentialHistograms. (#5397)

  • Setting Endpoint or HttpClientFactory properties on OtlpExporterOptions to null will now result in an ArgumentNullException being thrown. (#5434)

  • Introduced experimental support for automatically retrying export to the otlp endpoint when transient network errors occur. Users can enable this feature by setting OTEL_DOTNET_EXPERIMENTAL_OTLP_ENABLE_INMEMORY_RETRY environment variable to true. (#5435)

  • Added IOpenTelemetryBuilder.UseOtlpExporter extension to simplify setup of the OTLP Exporter when all three signals are used (logs, metrics, and traces). The new extension has the following behaviors:

    • Calling UseOtlpExporter will automatically enable logging, tracing, and metrics. Additional calls to WithLogging, WithMetrics, and WithTracing are NOT required however for metrics and tracing sources/meters still need to be enabled.

    • UseOtlpExporter can only be called once and cannot be used with the existing AddOtlpExporter extensions. Extra calls will result in NotSupportedExceptions being thrown.

    • UseOtlpExporter will register the OTLP Exporter at the end of the processor pipeline for logging and tracing.

    • The OTLP Exporters added for logging, tracing, and metrics can be configured using environment variables or IConfiguration.

    For details see: README > Enable OTLP Exporter for all signals.

    PR: #5400

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Added option to disable _total suffix addition to counter metrics (#5305)

  • Export OpenMetrics format from Prometheus exporters (#5107)

  • For requests with OpenMetrics format, scope info is automatically added (#5086 #5182)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Added option to disable _total suffix addition to counter metrics (#5305)

  • Export OpenMetrics format from Prometheus exporters (#5107)

  • For requests with OpenMetrics format, scope info is automatically added (#5086 #5182)

  • Breaking change Updated the PrometheusHttpListener to throw an exception if it can't be started. (#5304)

OpenTelemetry.Extensions.Hosting

Read more

1.7.1 / 1.7.0-beta.1 Instrumentation

10 Feb 02:01
Instrumentation.AspNetCore-1.7.1
303ab7a
Compare
Choose a tag to compare

1.7.1 (stable instrumentation)

OpenTelemetry.Instrumentation.AspNetCore

  • Fixed issue #4466 where the activity instance returned by Activity.Current was different than instance obtained from IHttpActivityFeature.Activity. (#5136)
  • Fixed an issue where the http.route attribute was not set on either the Activity or http.server.request.duration metric generated from a request when an exception handling middleware is invoked. One caveat is that this fix does not address the problem for the http.server.request.duration metric when running ASP.NET Core 8. ASP.NET Core 8 contains an equivalent fix which should ship in version 8.0.2 (see: dotnet/aspnetcore#52652). (#5135)
  • Fixes scenario when the net6.0 target of this library is loaded into a .NET 7+ process and the instrumentation does not behave as expected. This is an unusual scenario that does not affect users consuming this package normally. This fix is primarily to support the opentelemetry-dotnet-instrumentation project. (#5252)

OpenTelemetry.Instrumentation.Http

  • .NET Framework - fix description for http.client.request.duration metric. (#5234)

1.7.0-beta.1 (pre-release instrumentation)

OpenTelemetry.Instrumentation.SqlClient

  • Removed support for the OTEL_SEMCONV_STABILITY_OPT_IN environment variable which toggled the use of the new conventions for the server, client, and shared network attributes. Now that this suite of attributes are stable, this instrumentation will only emit the new attributes. (#5270)
  • Breaking Change: Renamed SqlClientInstrumentationOptions to SqlClientTraceInstrumentationOptions. (#5285)
  • Breaking Change: Stop emitting db.statement_type attribute. This attribute was never a part of the semantic conventions. (#5301)

OpenTelemetry.Instrumentation.GrpcNetClient

  • Breaking Change: Please be advised that the SuppressDownstreamInstrumentation option no longer works when used in conjunction with the OpenTelemetry.Instrumentation.Http package version 1.6.0 or greater. This is not a result of a change in the OpenTelemetry.Instrumentation.GrpcNetClient package therefore this also affects versions prior to this release. See this issue for details and workaround.
  • Removed support for the OTEL_SEMCONV_STABILITY_OPT_IN environment variable which toggled the use of the new conventions for the server, client, and shared network attributes. Now that this suite of attributes are stable, this instrumentation will only emit the new attributes. (#5259)
  • Breaking Change: Renamed GrpcClientInstrumentationOptions to GrpcClientTraceInstrumentationOptions. (#5272)

1.7.0 of AspNetCore and Http instrumentation libraries

14 Dec 02:25
Instrumentation.AspNetCore-1.7.0
1477c85
Compare
Choose a tag to compare

From a feature standpoint, 1.7.0 release of these two instrumentation libraries don't have any additional changes on top of the respective 1.6.0 version packages. The major difference in 1.7.0 is that it depends on 1.7.0 version of OpenTelemetry.Api.ProviderBuilderExtensions which brings in >=8.0.0 version of System.Diagnostics.DiagnosticSource.

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 for these two packages.

1.6.0 of AspNetCore and Http instrumentation libraries

14 Dec 01:01
Instrumentation.AspNetCore-1.6.0
f77307b
Compare
Choose a tag to compare

This is the first stable release of both AspNetCore and Http instrumentation libraries. 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 for these two packages.

OpenTelemetry.Instrumentation.AspNetCore

  • Re-introduced support for gRPC instrumentation as an opt-in experimental feature. From now onwards, gRPC can be enabled by setting OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_ENABLE_GRPC_INSTRUMENTATION flag to True. OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_ENABLE_GRPC_INSTRUMENTATION can be set as an environment variable or via IConfiguration. The change is introduced in order to support stable release of http instrumentation. Semantic conventions for RPC is still experimental and hence the package will only support it as an opt-in experimental feature. Note that the support was removed in 1.6.0-rc.1 version of the package and versions released before 1.6.0-rc.1 had gRPC instrumentation enabled by default. (#5130)

1.7.0 / 1.7.0-beta.1

09 Dec 00:01
core-1.7.0
f69c025
Compare
Choose a tag to compare

1.7.0 release for core components

If you're interested in knowing all of the changes that went into 1.7.0 release, please go through the Release notes of all the previous pre-release versions for 1.7.0.

1.7.0-beta.1 release for non-core components

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

OpenTelemetry.Shims.OpenTracing

  • Remove obsolete TracerShim(Tracer, TextMapPropagator) constructor. Use TracerShim(TracerProvider) or TracerShim(TracerProvider, TextMapPropagator) constructors. (#4862)

1.6.0-rc.1 of AspNetCore and HttpClient instrumentation libraries

02 Dec 01:06
1.6.0-rc.1
4a8f99e
Compare
Choose a tag to compare

OpenTelemetry.Instrumentation.AspNetCore

  • Removed support for OTEL_SEMCONV_STABILITY_OPT_IN environment variable. The library will now emit only the stable
    semantic conventions. (#5066)

  • Removed netstandard2.1 target. (#5094)

  • Removed support for grpc instrumentation to unblock stable release of http instrumentation. For details, see issue #5098 (#5097)

  • Breaking Change : Renamed AspNetCoreInstrumentationOptions to AspNetCoreTraceInstrumentationOptions. (#5108)

OpenTelemetry.Instrumentation.Http

  • Removed support for OTEL_SEMCONV_STABILITY_OPT_IN environment variable. The library will now emit only the stable
    semantic conventions. (#5068)

  • Update activity DisplayName as per the specification. (#5078)

  • Removed reference to OpenTelemetry package. This is a breaking change for users relying on SuppressDownstreamInstrumentation option in OpenTelemetry.Instrumentation.GrpcNetClient. For details, check out this issue. (#5077)

  • Breaking Change: Renamed HttpClientInstrumentationOptions to HttpClientTraceInstrumentationOptions. (#5109)

  • Breaking Change: Removed http.user_agent tag from HttpClient activity. (#5110)

  • HttpWebRequest : Introduced additional values for error.type tag on activity and http.client.request.duration metric. (#5111)

core-1.7.0-rc.1

29 Nov 23:57
core-1.7.0-rc.1
c637263
Compare
Choose a tag to compare
core-1.7.0-rc.1 Pre-release
Pre-release

OpenTelemetry

  • The AddService ResourceBuilder extension method will now generate the same service.instance.id for the lifetime of a process when autoGenerateServiceInstanceId is true. (#4988)

  • Fixed a Metrics SDK bug which led to ExemplarReservoir.Offer always being called regardless of whether or not the ExemplarFilter sampled the measurement. (#5004) (#5016)

  • Update Metrics SDK to override the default histogram buckets for the followingmetrics from ASP.NET Core and HttpClient runtime:

    • signalr.server.connection.duration
    • kestrel.connection.duration
    • http.client.connection.duration

    These histogram metrics which have their Unit as s (second) will have their default histogram buckets as [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ]. (#5008) (#5021)

  • Remove the bucket with value 0 for histogram buckets for all metrics from ASP.NET Core and HttpClient. (#5021)

  • Updated Microsoft.Extensions.Logging.Configuration package version to 8.0.0. (#5051)

  • Updated Microsoft.Extensions.Logging package version to 8.0.0. (#5051)

  • Revert the default behavior of Metrics SDK for Delta aggregation. It would not reclaim unused Metric Points by default. You can enable the SDK to reclaim unused Metric Points by setting the environment variable OTEL_DOTNET_EXPERIMENTAL_METRICS_RECLAIM_UNUSED_METRIC_POINTS to true before setting up the MeterProvider. (#5052)

  • Update Metrics SDK to override the default histogram buckets for ASP.NET (.NET Framework).

    Histogram metrics for the meter name OpenTelemetry.Instrumentation.AspNet and instrument name http.request.server.duration which have their Unit as s (second) will have their default histogram buckets as [ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]. (#5063)

  • Added AddProcessor overload on OpenTelemetryLoggerOptions which exposes the factory pattern (Func<IServiceProvider, BaseProcessor<LogRecord>> implementationFactory). (#4916)

  • Add support for Instrumentation Scope Attributes (i.e Meter Tags), fixing issue #4563. (#5089)

  • Added the ILoggingBuilder.UseOpenTelemetry experimental API extension for registering OpenTelemetry ILogger integration using LoggerProviderBuilder which supports the full DI (IServiceCollection \ IServiceProvider) API surface (mirrors tracing & metrics). (#5072)

  • Changed the ILoggingBuilder registration extensions (AddOpenTelemetry & UseOpenTelemetry) to fire the optional OpenTelemetryLoggerOptions configuration delegate AFTER the "Logging:OpenTelemetry" IConfiguration section has been applied. (#5072)

OpenTelemetry.Api

  • Updated System.Diagnostics.DiagnosticSource package version to 8.0.0. (#5051)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Updated Microsoft.Extensions.DependencyInjection.Abstractions package version to 8.0.0. (#5051)

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Made OpenTelemetry.Exporter.OtlpLogExporter public. (#4979)

  • Updated the OpenTelemetryLoggerOptions.AddOtlpExporter extension to retrieve OtlpExporterOptions and LogRecordExportProcessorOptions using the IServiceProvider / Options API so that they can be controlled via IConfiguration (similar to metrics and traces). (#4916)

  • Added an OpenTelemetryLoggerOptions.AddOtlpExporter extension overload which accepts a name parameter to support named options. (#4916)

  • Add support for Instrumentation Scope Attributes (i.e Meter Tags),
    fixing issue #4563. (#5089)

OpenTelemetry.Extensions.Hosting

  • Updated Microsoft.Extensions.Hosting.Abstractions package version to 8.0.0. (#5051)

  • The OpenTelemetryBuilder.WithMetrics method will now register an IMetricsListener named 'OpenTelemetry' into the IServiceCollection to enable metric management via the new Microsoft.Extensions.Diagnostics .NET 8 APIs. (#4958)

  • The OpenTelemetryBuilder.WithLogging experimental API method will now register an ILoggerProvider named 'OpenTelemetry' into the IServiceCollection to enable ILoggerFactory integration. (#5072)