Releases: open-telemetry/opentelemetry-dotnet
Instrumentation.GrpcNetClient-1.8.0-beta.1
1.8.0-beta.1 of GrpcNetClient instrumentation library
core-1.8.0
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:
- https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.8.0-beta.1
- https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.8.0-rc.1
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 theSystem.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport
AppContext
switch is NOT set AND usingOtlpExportProtocol.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 toin_memory
will enable automatic retries in case of transient
failures during data export to an OTLP endpoint.
(#5495)
core-1.8.0-rc.1
OpenTelemetry
TracerProvider
s 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
, andparentbased_traceidratio
. The options
traceidratio
andparentbased_traceidratio
may have the sampler probability
configured via theOTEL_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
tootel.scope.name
andotel.scope.version
respectively.
Old versions of attributes are deprecated, but still exported
for backward compatibility.
(#5473)
core-1.8.0-beta.1
OpenTelemetry
-
Throw NotSupportedException when using
SetErrorStatusOnException
method for Tracing in Mono Runtime and Native AOT environment because the dependentMarshal.GetExceptionPointers()
API is not supported on these platforms. (#5374) -
Fixed an issue where
LogRecord.Attributes
(orLogRecord.StateValues
alias) could become out of sync withLogRecord.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
LogRecord
s to be incorrectly reused when wrapping an instance ofBatchLogRecordExportProcessor
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 obsoletedMeterProviderBuilderExtensions.SetMaxMetricPointsPerMetricStream
(previously applied to all metrics). The default cardinality limit for metrics remains at2000
. (#5312, #5328) -
Updated
LogRecord
to keepCategoryName
andLogger
in sync when using the experimental Log Bridge API. #5317 -
Added
OpenTelemetryBuilderSdkExtensions
class which contains extension methods (ConfigureResource
,WithMetrics
,WithTracing
, and experimentalWithLogging
) for theIOpenTelemetryBuilder
interface. (#5265) -
Added
Microsoft.Extensions.Diagnostics.Abstractions
dependency so that theIOpenTelemetryBuilder.WithMetrics
extension method can configure IMetricsListener. (#5265) -
Experimental (pre-release builds only): The
Exemplar.FilteredTags
property now returns aReadOnlyFilteredTagCollection
instance and theExemplar.LongValue
property has been added. TheMetricPoint.GetExemplars
method has been replaced byMetricPoint.TryGetExemplars
which outputs aReadOnlyExemplarCollection
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
, andTraceBasedExemplarFilter
APIs. TheMeterProviderBuilder.SetExemplarFilter
extension method now accepts anExemplarFilterType
enumeration (which contains definitions for the supported filter typesAlwaysOff
,AlwaysOn
, andTraceBased
) instead of anExemplarFilter
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 SDKMeterProvider
s can now be controlled via theOTEL_METRICS_EXEMPLAR_FILTER
environment variable. The supported values are:always_off
,always_on
, andtrace_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 attributesexception.type
,exception.message
, andexception.stacktrace
in the OpenTelemetry Semantic Conventions. These attributes, corresponding toLogRecord.Exception
, are now stable and will be automatically included in exports. (#5258) -
Updated
OtlpLogExporter
to setbody
on the data model fromLogRecord.Body
if{OriginalFormat}
attribute is NOT found andFormattedMessage
isnull
. This is typically the case when using the
experimental Logs Bridge API. (#5268) -
Updated
OtlpLogExporter
to set instrumentation scope name on the data model fromLogRecord.Logger.Name
ifLogRecord.CategoryName
isnull
. 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
orHttpClientFactory
properties onOtlpExporterOptions
tonull
will now result in anArgumentNullException
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 toWithLogging
,WithMetrics
, andWithTracing
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 existingAddOtlpExporter
extensions. Extra calls will result inNotSupportedException
s 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
OpenTelemetryBuilder
has been marked obsolete. Component authors usingOpenTelemetryBuilder
for cross-cutting signal configuration extensions should switch to targetingIOpenTelemetryBuilder
instead. ([#5265](https://github.com/open-telemetry/opentelemetry-dotnet/pu...
1.7.1 / 1.7.0-beta.1 Instrumentation
1.7.1 (stable instrumentation)
OpenTelemetry.Instrumentation.AspNetCore
- Fixed issue #4466 where the activity instance returned by
Activity.Current
was different than instance obtained fromIHttpActivityFeature.Activity
. (#5136) - Fixed an issue where the
http.route
attribute was not set on either theActivity
orhttp.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 thehttp.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
toSqlClientTraceInstrumentationOptions
. (#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 version1.6.0
or greater. This is not a result of a change in theOpenTelemetry.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
toGrpcClientTraceInstrumentationOptions
. (#5272)
1.7.0 of AspNetCore and Http instrumentation libraries
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
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 toTrue
.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 ofhttp
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 in1.6.0-rc.1
version of the package and versions released before1.6.0-rc.1
had gRPC instrumentation enabled by default. (#5130)
1.7.0 / 1.7.0-beta.1
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. UseTracerShim(TracerProvider)
orTracerShim(TracerProvider, TextMapPropagator)
constructors. (#4862)
1.6.0-rc.1 of AspNetCore and HttpClient instrumentation libraries
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
toAspNetCoreTraceInstrumentationOptions
. (#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 inOpenTelemetry.Instrumentation.GrpcNetClient
. For details, check out this issue. (#5077) -
Breaking Change: Renamed
HttpClientInstrumentationOptions
toHttpClientTraceInstrumentationOptions
. (#5109) -
Breaking Change: Removed
http.user_agent
tag from HttpClient activity. (#5110) -
HttpWebRequest
: Introduced additional values forerror.type
tag on activity andhttp.client.request.duration
metric. (#5111)
core-1.7.0-rc.1
OpenTelemetry
-
The
AddService
ResourceBuilder
extension method will now generate the sameservice.instance.id
for the lifetime of a process whenautoGenerateServiceInstanceId
istrue
. (#4988) -
Fixed a Metrics SDK bug which led to
ExemplarReservoir.Offer
always being called regardless of whether or not theExemplarFilter
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
ass
(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 to8.0.0
. (#5051) -
Updated
Microsoft.Extensions.Logging
package version to8.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
totrue
before setting up theMeterProvider
. (#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 namehttp.request.server.duration
which have theirUnit
ass
(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 onOpenTelemetryLoggerOptions
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 OpenTelemetryILogger
integration usingLoggerProviderBuilder
which supports the full DI (IServiceCollection
\IServiceProvider
) API surface (mirrors tracing & metrics). (#5072) -
Changed the
ILoggingBuilder
registration extensions (AddOpenTelemetry
&UseOpenTelemetry
) to fire the optionalOpenTelemetryLoggerOptions
configuration delegate AFTER the "Logging:OpenTelemetry"IConfiguration
section has been applied. (#5072)
OpenTelemetry.Api
- Updated
System.Diagnostics.DiagnosticSource
package version to8.0.0
. (#5051)
OpenTelemetry.Api.ProviderBuilderExtensions
- Updated
Microsoft.Extensions.DependencyInjection.Abstractions
package version to8.0.0
. (#5051)
OpenTelemetry.Exporter.Console
- Add support for Instrumentation Scope Attributes (i.e Meter Tags), fixing issue #4563. (#5089)
OpenTelemetry.Exporter.OpenTelemetryProtocol
-
Made
OpenTelemetry.Exporter.OtlpLogExporter
public. (#4979) -
Updated the
OpenTelemetryLoggerOptions.AddOtlpExporter
extension to retrieveOtlpExporterOptions
andLogRecordExportProcessorOptions
using theIServiceProvider
/ Options API so that they can be controlled viaIConfiguration
(similar to metrics and traces). (#4916) -
Added an
OpenTelemetryLoggerOptions.AddOtlpExporter
extension overload which accepts aname
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 to8.0.0
. (#5051) -
The
OpenTelemetryBuilder.WithMetrics
method will now register anIMetricsListener
named 'OpenTelemetry' into theIServiceCollection
to enable metric management via the newMicrosoft.Extensions.Diagnostics
.NET 8 APIs. (#4958) -
The
OpenTelemetryBuilder.WithLogging
experimental API method will now register anILoggerProvider
named 'OpenTelemetry' into theIServiceCollection
to enableILoggerFactory
integration. (#5072)