Releases: open-telemetry/opentelemetry-dotnet
Instrumentation.AspNetCore-1.8.1
OpenTelemetry.Instrumentation.AspNetCore
- Breaking Change: Fixed tracing instrumentation so that by default any
values detected in the query string component of requests are replaced with
the textRedactedwhen building theurl.querytag. For example,
?key1=value1&key2=value2becomes?key1=Redacted&key2=Redacted. You can
disable this redaction by setting the environment variable
OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTIONtotrue.
(#5532)
Instrumentation.Http-1.8.0
OpenTelemetry.Instrumentation.Http
-
Fixed an issue for spans when
server.portattribute was not set with
server.addresswhen it has default values (80forHTTPand
443forHTTPSprotocol).
(#5419) -
Fixed an issue where the
http.request.method_originalattribute was not set
on activity. Now, whenhttp.request.methodis set and the original method
is converted to its canonical form (e.g.,Getis converted toGET),
the original valueGetwill be stored inhttp.request.method_original.
The attribute is not set on .NET Framework for non canonical form ofCONNECT,
GET,HEAD,PUT, andPOST. HTTP Client is converting these values
to canonical form.
(#5471)
Instrumentation.AspNetCore-1.8.0
OpenTelemetry.Instrumentation.AspNetCore
-
Fixed an issue for spans when
server.portattribute was not set with
server.addresswhen it has default values (80forHTTPand
443forHTTPSprotocol).
(#5419) -
Fixed an issue where the
http.request.method_originalattribute was not set
on activity. Now, whenhttp.request.methodis set and the original method
is converted to its canonical form (e.g.,Getis converted toGET),
the original valueGetwill be stored inhttp.request.method_original.
(#5471) -
Fixed the name of spans that have
http.request.methodattribute set to_OTHER.
The span name will be set asHTTP {http.route}as per the specification.
(#5484)
Instrumentation.SqlClient-1.8.0-beta.1
1.8.0-beta.1 of SqlClient instrumentation library
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.Versionproperty.
(#5472)
OpenTelemetry.Exporter.OpenTelemetryProtocol
-
OtlpExporterwill no longer throw an exception (even on .NET Core 3.1)
when theSystem.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport
AppContextswitch 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_RETRYwith
OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY.OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY
when set toin_memorywill enable automatic retries in case of transient
failures during data export to an OTLP endpoint.
(#5495)
core-1.8.0-rc.1
OpenTelemetry
TracerProviders can now have a sampler configured via the
OTEL_TRACES_SAMPLERenvironment variable. The supported values are:
always_off,always_on,traceidratio,parentbased_always_on,
parentbased_always_off, andparentbased_traceidratio. The options
traceidratioandparentbased_traceidratiomay have the sampler probability
configured via theOTEL_TRACES_SAMPLER_ARGenvironment variable.
For details see: OpenTelemetry Environment Variable
Specification.
(#5448)
OpenTelemetry.Exporter.Prometheus.AspNetCore
-
Fix serializing scope_info when buffer overflows
(#5407) -
Add
target_infoto Prometheus exporters when using OpenMetrics
(#5407)
OpenTelemetry.Exporter.Prometheus.HttpListener
-
Fix serializing scope_info when buffer overflows
(#5407) -
Add
target_infoto Prometheus exporters when using OpenMetrics
(#5407)
OpenTelemetry.Exporter.Zipkin
- Zipkin tags used for Instrumentation Library changed from
otel.library.nameand
otel.library.versiontootel.scope.nameandotel.scope.versionrespectively.
Old versions of attributes are deprecated, but still exported
for backward compatibility.
(#5473)
core-1.8.0-beta.1
OpenTelemetry
-
Throw NotSupportedException when using
SetErrorStatusOnExceptionmethod 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.StateValuesalias) could become out of sync withLogRecord.Stateif 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
SimpleExemplarReservoirwas not resetting internal state for cumulative temporality. (#5230) -
Fixed an issue causing
LogRecords to be incorrectly reused when wrapping an instance ofBatchLogRecordExportProcessorinside 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
LogRecordto keepCategoryNameandLoggerin sync when using the experimental Log Bridge API. #5317 -
Added
OpenTelemetryBuilderSdkExtensionsclass which contains extension methods (ConfigureResource,WithMetrics,WithTracing, and experimentalWithLogging) for theIOpenTelemetryBuilderinterface. (#5265) -
Added
Microsoft.Extensions.Diagnostics.Abstractionsdependency so that theIOpenTelemetryBuilder.WithMetricsextension method can configure IMetricsListener. (#5265) -
Experimental (pre-release builds only): The
Exemplar.FilteredTagsproperty now returns aReadOnlyFilteredTagCollectioninstance and theExemplar.LongValueproperty has been added. TheMetricPoint.GetExemplarsmethod has been replaced byMetricPoint.TryGetExemplarswhich outputs aReadOnlyExemplarCollectioninstance. 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, andTraceBasedExemplarFilterAPIs. TheMeterProviderBuilder.SetExemplarFilterextension method now accepts anExemplarFilterTypeenumeration (which contains definitions for the supported filter typesAlwaysOff,AlwaysOn, andTraceBased) instead of anExemplarFilterinstance. This was done in response to changes made to the OpenTelemetry Metrics SDK Specification. (#5404) -
Experimental (pre-release builds only): The
ExemplarFilterused by SDKMeterProviders can now be controlled via theOTEL_METRICS_EXEMPLAR_FILTERenvironment variable. The supported values are:always_off,always_on, andtrace_based. For details see: OpenTelemetry Environment Variable Specification. (#5412)
OpenTelemetry.Api.ProviderBuilderExtensions
- Added
IOpenTelemetryBuilderinterface 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.AddOtlpExporterregistration extensions. #5103 -
Removed the
OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTESenvironment variable, following the stabilization of the exception attributesexception.type,exception.message, andexception.stacktracein the OpenTelemetry Semantic Conventions. These attributes, corresponding toLogRecord.Exception, are now stable and will be automatically included in exports. (#5258) -
Updated
OtlpLogExporterto setbodyon the data model fromLogRecord.Bodyif{OriginalFormat}attribute is NOT found andFormattedMessageisnull. This is typically the case when using the
experimental Logs Bridge API. (#5268) -
Updated
OtlpLogExporterto set instrumentation scope name on the data model fromLogRecord.Logger.NameifLogRecord.CategoryNameisnull. This is typically the case when using the experimental Logs Bridge API. (#5300) -
URL encoded values in
OTEL_EXPORTER_OTLP_HEADERSare now correctly decoded as it is mandated by the specification. (#5316) -
Experimental (pre-release builds only): Add support in
OtlpMetricExporterfor emitting exemplars supplied on Counters, Gauges, and
ExponentialHistograms. (#5397) -
Setting
EndpointorHttpClientFactoryproperties onOtlpExporterOptionstonullwill now result in anArgumentNullExceptionbeing 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_RETRYenvironment variable to true. (#5435) -
Added
IOpenTelemetryBuilder.UseOtlpExporterextension 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
UseOtlpExporterwill automatically enable logging, tracing, and metrics. Additional calls toWithLogging,WithMetrics, andWithTracingare NOT required however for metrics and tracing sources/meters still need to be enabled. -
UseOtlpExportercan only be called once and cannot be used with the existingAddOtlpExporterextensions. Extra calls will result inNotSupportedExceptions being thrown. -
UseOtlpExporterwill 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
PrometheusHttpListenerto throw an exception if it can't be started. (#5304)
OpenTelemetry.Extensions.Hosting
OpenTelemetryBuilderhas been marked obsolete. Component authors usingOpenTelemetryBuilderfor cross-cutting signal configuration extensions should switch to targetingIOpenTelemetryBuilderinstead. ([#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.Currentwas different than instance obtained fromIHttpActivityFeature.Activity. (#5136) - Fixed an issue where the
http.routeattribute was not set on either theActivityorhttp.server.request.durationmetric 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.durationmetric 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.0target 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.durationmetric. (#5234)
1.7.0-beta.1 (pre-release instrumentation)
OpenTelemetry.Instrumentation.SqlClient
- Removed support for the
OTEL_SEMCONV_STABILITY_OPT_INenvironment 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
SqlClientInstrumentationOptionstoSqlClientTraceInstrumentationOptions. (#5285) - Breaking Change: Stop emitting
db.statement_typeattribute. 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.Httppackage version1.6.0or greater. This is not a result of a change in theOpenTelemetry.Instrumentation.GrpcNetClientpackage therefore this also affects versions prior to this release. See this issue for details and workaround. - Removed support for the
OTEL_SEMCONV_STABILITY_OPT_INenvironment 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
GrpcClientInstrumentationOptionstoGrpcClientTraceInstrumentationOptions. (#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.