Releases: open-telemetry/opentelemetry-dotnet
1.4.0 / 1.0.0-rc9.14
1.4.0
This is the stable release encompassing work from 1.4.0-alpha.1 to 1.4.0-rc.4
OpenTelemetry
OpenTelemetry.Api
OpenTelemetry.Api.ProviderBuilderExtensions
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
AddOtlpExporter
extension methods will now always create a new options instance when named options are NOT used. (#4200)
OpenTelemetry.Exporter.Zipkin
OpenTelemetry.Extensions.Hosting
- Removed deprecated extensions:
AddOpenTelemetryTracing
,AddOpenTelemetryMetrics
,Configure
, &GetServices
. (#4071)
OpenTelemetry.Extensions.Propagators
1.0.0-rc9.14
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
1.4.0-rc.4 / 1.0.0-rc9.13
OpenTelemetry
-
Removed the dependency on System.Reflection.Emit.Lightweight (#4140)
-
Moved the
AddOpenTelemetry
extension into theOpenTelemetry.Extensions.Hosting
package so that theStartWithHost
API
could be removed. (#4174)
OpenTelemetry.Api
OpenTelemetry.Api.ProviderBuilderExtensions
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
- Added a direct dependency on System.Reflection.Emit.Lightweight which previously came transitively through the OpenTelemetry SDK. (#4140)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Extensions.Hosting
- Added
AddOpenTelemetry
extension from SDK and removedStartWithHost
.AddOpenTelemetry
now registers theIHostedService
used to start collecting traces and/or metrics. (#4174)
OpenTelemetry.Extensions.Propagators
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
1.4.0-rc.3 / 1.0.0-rc9.12
OpenTelemetry
-
Removed the dependency on Microsoft.Extensions.Configuration.EnvironmentVariables (#4092)
-
Removed the explicit reference to Microsoft.Extensions.Options version 5.0 and reverted back to the transitive reference of version 3.1 (#4093)
-
Added
SetSampler
,AddProcessor
, &AddReader
factory extensions. (#4103)
OpenTelemetry.Api
OpenTelemetry.Api.ProviderBuilderExtensions
-
Removed
ConfigureBuilder
from the public API. (#4103) -
Renamed package from
OpenTelemetry.Extensions.DependencyInjection
toOpenTelemetry.Api.ProviderBuilderExtensions
. (#4125)
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
- Include User-Agent header per the specification. (#4120)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
- Changed EnvironmentVariable parsing to not throw a
FormatException
and instead log a warning. (#4095)
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Extensions.Propagators
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
1.4.0-rc.2/1.0.0-rc9.11
1.4.0-rc.2
OpenTelemetry
- Performance Improvement: Update the internal structure used to store metric dimensions from a combination of
string[]
andobject[]
to aKeyValuePair<string, object>[]
. This results in faster copying of the metric dimensions required forMetricPoint
lookup on the hot path (#4059)
OpenTelemetry.Api
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
- For
AddOtlpExporter
extension methods, configuration delegates will be executed inline and not through Options API when named options are NOT used. (#4058)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
OpenTelemetry.Extensions.DependencyInjection
OpenTelemetry.Extensions.Hosting
- If the OpenTelemetry SDK cannot start it will now throw exceptions and prevent the host from starting. (#4006)
1.0.0-rc9.11
OpenTelemetry.Extensions.Propagators
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
core-1.3.2
- Support for metrics was originally released in version 1.3.0. A synchronization issue with regards to the histogram aggregation was discovered and fixed in #3534. This fix has been back-ported to OpenTelemetry .NET 1.3.2. If you are currently running OpenTelemetry .NET version 1.3.x, it is recommended that you upgrade to 1.3.2. (#4031)
1.4.0-rc.1 / 1.0.0-rc9.10
1.4.0-rc.1
OpenTelemetry
-
Added dependency injection support in the
ResourceBuilder
class and added
support for loading environment variables fromIConfiguration
for the
AddEnvironmentVariableDetector
extension (Logs)
(#3889) -
Refactored
AddInstrumentation
,ConfigureServices
andConfigureBuilder
APIs into the OpenTelemetry.Extensions.DependencyInjection package and added
theIServiceCollection.AddOpenTelemetry
API
(#3923) -
Removed
ConfigureResource
onOpenTelemetryLoggingOptions
(#3999)
OpenTelemetry.Api
- Updated to System.Diagnostics.DiagnosticSource version
7.0.0
.
OpenTelemetry.Exporter.Console
- Bug fix to prevent ConsoleExporter from failing when exporting an
ActivityLink
without Tags.
(#3932)
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
OpenTelemetry.Exporter.OpenTelemetryProtocol
- Fix default values for
OTEL_ATTRIBUTE_COUNT_LIMIT
,
OTEL_ATTRIBUTE_COUNT_LIMIT
,
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT
,
OTEL_SPAN_EVENT_COUNT_LIMIT
,
OTEL_SPAN_LINK_COUNT_LIMIT
,
OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT
,
OTEL_LINK_ATTRIBUTE_COUNT_LIMIT
. All of them are defaulted to128
.
(#3978)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
OpenTelemetry.Extensions.DependencyInjection
Initial release.
OpenTelemetry.Extensions.Hosting
- Added the
OpenTelemetryBuilder.StartWithHost
extension.
(#3923)
OpenTelemetry.Extensions.Propagators
1.0.0-rc9.10
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Instrumentation.AspNetCore
-
Users migrating from version
1.0.0-rc9.9
will see the following breaking
changes:-
Updated
http.status_code
dimension type from string to int for
http.server.duration
metric.
(#3930) -
http.host
will no longer be populated onhttp.server.duration
metric.
net.host.name
andnet.host.port
attributes will be populated instead.
(#3928) -
The
http.server.duration
metric'shttp.target
attribute is replaced with
http.route
attribute.
(#3903) -
http.host
will no longer be populated on activity.net.host.name
and
net.host.port
attributes will be populated instead.
(#3858)
-
-
Extension method
AddAspNetCoreInstrumentation
onMeterProviderBuilder
now
supportsAspNetCoreMetricsInstrumentationOptions
. This option class exposes
configuration properties for metric filtering and tag enrichment.
(#3948,
#3982)
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
-
Added
net.peer.name
andnet.peer.port
as dimensions on
http.client.duration
metric.
(#3907) -
Breaking change
http.host
will no longer be populated on activity.
net.peer.name
andnet.peer.port
attributes will be populated instead.
(#3832)
OpenTelemetry.Instrumentation.SqlClient
-
Breaking change: The same API is now exposed for
net462
and
netstandard2.0
targets.SetDbStatement
has been removed. Use
SetDbStatementForText
to capture command text and stored procedure names on
.NET Framework. Note:Enrich
,Filter
,RecordException
, and
SetDbStatementForStoredProcedure
options are NOT supported on .NET
Framework.
(#3900) -
Added overloads which accept a name to the
TracerProviderBuilder
AddSqlClientInstrumentation
extension to allow for more fine-grained options
management
(#3994)
OpenTelemetry.Shims.OpenTracing
1.4.0-beta.3 / 1.0.0-rc9.9
1.4.0-beta.3
OpenTelemetry
-
Fix instrument naming enforcement implementation to match the spec.
(#3821) -
Added support for loading environment variables from
IConfiguration
when
using theMetricReaderOptions
&BatchExportActivityProcessorOptions
classes.
(#3760,
#3776) -
Added dependency injection support in the
ResourceBuilder
class and added
support for loading environment variables fromIConfiguration
for the
AddEnvironmentVariableDetector
extension
(#3782,
#3798) -
Breaking: MetricPoint API to retrieve Histogram Min, Max changed. The existing
pattern of checking if Min/Max is available withHasMinMax()
and then
retrieving the same usingGetHistogramMin()
,GetHistogramMax()
is replaced
with a single APITryGetHistogramMinMaxValues(out double min, out double max)
.
(#3822)
OpenTelemetry.Api
- Updated to System.Diagnostics.DiagnosticSource version
7.0.0-rc.2.22472.3
.
OpenTelemetry.Exporter.Console
- Bumped the minimum required version of
System.Text.Json
to 4.7.2 in response
to CVE-2021-26701.
(#3789)
LogRecordExporter to print full exception details instead of just Message, when
using ILogger
to log exception.
(#3784)
Added support to print Histogram Min, Max in MetricExporter.
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
- Bumped the minimum required version of
System.Text.Json
to 4.7.2 in response
to CVE-2021-26701.
(#3789)
OpenTelemetry.Exporter.OpenTelemetryProtocol
- Log Exporter modified to no longer prefix scope-depth when exporting ILogger
scopes as attributes. Empty keys and {OriginalFormat} key will be ignored from
scopes.
(3843)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
- Support named options in
UseOpenTelemetryPrometheusScrapingEndpoint
&
MapPrometheusScrapingEndpoint
extensions
(#3780)
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
- Bumped the minimum required version of
System.Text.Json
to 4.7.2 in response
to CVE-2021-26701.
(#3789)
OpenTelemetry.Extensions.Propagators
1.0.0-rc9.9
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
-
Breaking change The
Enrich
callback option has been removed.
For better usability, it has been replaced by three separate options:
EnrichWithHttpRequest
,EnrichWithHttpResponse
andEnrichWithException
.
Previously, the singleEnrich
callback required the consumer to detect
which event triggered the callback to be invoked (e.g., request start,
response end, or an exception) and then cast the object received to the
appropriate type:HttpRequest
,HttpResponse
, orException
. The separate
callbacks make it clear what event triggers them and there is no longer the
need to cast the argument to the expected type.
(#3749) -
Added back
netstandard2.0
andnetstandard2.1
targets.
(#3755)
OpenTelemetry.Instrumentation.GrpcNetClient
Breaking change The Enrich
callback option has been removed. For better
usability, it has been replaced by two separate options:
EnrichWithHttpRequestMessage
and EnrichWithHttpResponseMessage
. Previously,
the single Enrich
callback required the consumer to detect which event
triggered the callback to be invoked (e.g., request start or response end) and
then cast the object received to the appropriate type: HttpRequestMessage
and HttpResponseMessage
. The separate callbacks make it clear what event
triggers them and there is no longer the need to cast the argument to the
expected type.
(#3804)
OpenTelemetry.Instrumentation.Http
-
Added back
netstandard2.0
target.
(#3787) -
Breaking change: The
Enrich
callback option has been removed. For better
usability, it has been replaced by three separate options: In case of
HttpClient
the new options areEnrichWithHttpRequestMessage
,
EnrichWithHttpResponseMessage
andEnrichWithException
and in case of
HttpWebRequest
the new options areEnrichWithHttpWebRequest
,
EnrichWithHttpWebResponse
andEnrichWithException
. Previously, the single
Enrich
callback required the consumer to detect which event triggered the
callback to be invoked (e.g., request start, response end, or an exception)
and then cast the object received to the appropriate type:
HttpRequestMessage
,HttpResponsemessage
, orException
in case of
HttpClient
andHttpWebRequest
,HttpWebResponse
andException
in case of
HttpWebRequest
. The separate callbacks make it clear what event triggers
them and there is no longer the need to cast the argument to the expected
type.
(#3792) -
Fixed an issue which prevented custom propagators from being called on .NET 7+
runtimes for non-sampled outgoingHttpClient
spans.
(#3828) -
Breaking change: The same API is now exposed for
net462
and
netstandard2.0
targets. TheFilter
property on options is now exposed as
FilterHttpRequestMessage
(called for .NET & .NET Core) and
FilterHttpWebRequest
(called for .NET Framework).
(#3793)
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
1.4.0-beta.2 / 1.0.0-rc9.8
1.4.0-beta.2
OpenTelemetry
-
Make recording of
Min
andMax
for histograms configurable, enabled by
default.
(#2735) -
Changed default bucket boundaries for Explicit Bucket Histogram from [0, 5,
10, 25, 50, 75, 100, 250, 500, 1000] to [0, 5, 10, 25, 50, 75, 100, 250, 500,
750, 1000, 2500, 5000, 7500, 10000].
(#3722) -
Fixed an issue where
LogRecord.ForEachScope
may return scopes from a
previous log if accessed in a custom processor before
BatchLogRecordExportProcessor.OnEnd
is fired.
(#3731) -
Added support for loading environment variables from
IConfiguration
when
usingTracerProviderBuilder
orMeterProviderBuilder
(#3720)
OpenTelemetry.Api
OpenTelemetry.Exporter.Console
OpenTelemetry.Exporter.InMemory
OpenTelemetry.Exporter.Jaeger
- Added support for loading environment variables from
IConfiguration
when
using theAddJaegerExporter
extension
(#3720)
OpenTelemetry.Exporter.OpenTelemetryProtocol
-
OTLP histogram data points will now include
Min
andMax
values when
they are present.
(#2735) -
Adds support for limiting the length and count of attributes exported from
the OTLP log exporter. These
Attribute Limits
are configured via the environment variables defined in the specification.
(#3684)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Prometheus.AspNetCore
- Changed configuration class name from
PrometheusExporterOptions
toPrometheusAspNetCoreOptions
(#3717)
OpenTelemetry.Exporter.Prometheus.HttpListener
OpenTelemetry.Exporter.Zipkin
- Added support for loading environment variables from
IConfiguration
when
using theAddZipkinExporter
extension
(#3759)
OpenTelemetry.Extensions.Propagators
1.0.0-rc9.8
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.GrpcNetClient
OpenTelemetry.Instrumentation.Http
- In case of .NET Core, additional spans created during retries will now be
exported.
([#3729])
OpenTelemetry.Instrumentation.SqlClient
- Use
Activity.Status
andActivity.StatusDescription
properties instead of
OpenTelemetry.Trace.Status
andOpenTelemetry.Trace.Status.Description
respectively to set activity status.
(#3118)
(#3751)
OpenTelemetry.Shims.OpenTracing
1.4.0-beta.1 / 1.0.0-rc9.7
1.4.0-beta.1
OpenTelemetry
-
Use binary search for histograms with 50 or more supplied boundaries.
(#3252) -
Allows samplers the ability to modify tracestate if desired.
(#3610) -
Added support for
UpDownCounter
andObservableUpDownCounter
instruments.
(#3606) -
Added support for dependency injection scenarios when configuring
MeterProvider
(#3646) -
Revert new logging APIs pending OTel specification changes
(#3702)
OpenTelemetry.Api
- Updated to System.Diagnostics.DiagnosticSource version
7.0.0-rc.1.22426.10
.
(#3698)
OpenTelemetry.Exporter.Console
-
Changed the behavior of
ConsoleExporter
, the exporter will stop outputting
the data if it is disposed.
(#3578) -
Added overloads which accept a name to the
MeterProviderBuilder
AddConsoleExporter
extension to allow for more fine-grained options
management
(#3648) -
Added overloads which accept a name to the
TracerProviderBuilder
AddConsoleExporter
extension to allow for more fine-grained options
management
(#3657)
OpenTelemetry.Exporter.InMemory
-
Changed error handling,
InMemoryExporter
will now throw
ObjectDisposedException
ifExport
is invoked after the exporter is
disposed.
(#3607) -
Added overloads which accept a name to the
MeterProviderBuilder
AddInMemoryExporter
extension to allow for more fine-grained options
management
(#3648)
OpenTelemetry.Exporter.Jaeger
- Added overloads which accept a name to the
TracerProviderBuilder
AddJaegerExporter
extension to allow for more fine-grained options
management
(#3656)
OpenTelemetry.Exporter.OpenTelemetryProtocol
-
Added overloads which accept a name to the
MeterProviderBuilder
AddOtlpExporter
extension to allow for more fine-grained options management
(#3648) -
Added overloads which accept a name to the
TracerProviderBuilder
AddOtlpExporter
extension to allow for more fine-grained options management
(#3653)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OtlpExporterOptions
can now be bound toIConfiguation
and
HttpClientFactory
may be used to manage theHttpClient
instance used when
HttpProtobuf
is configured
(#3640)
OpenTelemetry.Exporter.Prometheus.AspNetCore
- Bug fix for Prometheus Exporter reporting StatusCode 204
instead of 200, when no metrics are collected
(#3643) - Added overloads which accept a name to the
MeterProviderBuilder
AddPrometheusExporter
extension to allow for more fine-grained options
management
(#3648) - Added support for OpenMetrics UNIT metadata
(#3651) - Added
"# EOF\n"
ending following the OpenMetrics
specification
(#3654)
OpenTelemetry.Exporter.Prometheus.HttpListener
- Bug fix for Prometheus Exporter reporting StatusCode 204
instead of 200, when no metrics are collected
(#3643) - Added overloads which accept a name to the
MeterProviderBuilder
AddPrometheusHttpListener
extension to allow for more fine-grained options
management
(#3648) - Added support for OpenMetrics UNIT metadata
(#3651) - Added
"# EOF\n"
ending following the OpenMetrics
specification
(#3654)
OpenTelemetry.Exporter.Zipkin
- Added overloads which accept a name to the
TracerProviderBuilder
AddZipkinExporter
extension to allow for more fine-grained options
management
(#3655)
OpenTelemetry.Extensions.Propagators
1.0.0-rc9.7
OpenTelemetry.Exporter.ZPages
OpenTelemetry.Extensions.Hosting
-
Dependency injection support when configuring
TracerProvider
has been moved into the SDK.
(#3533) -
Dependency injection support when configuring
MeterProvider
has been moved into the SDK.
(#3646)
OpenTelemetry.Instrumentation.AspNetCore
-
Performance improvement (Reduced memory allocation) - Updated DiagnosticSource
event subscription to specific set of events.
(#3519) -
Added overloads which accept a name to the
TracerProviderBuilder
AddAspNetCoreInstrumentation
extension to allow for more fine-grained
options management
(#3661) -
Fix issue where when an application has an ExceptionFilter, the exception data
wouldn't be collected.
(#3475)
OpenTelemetry.Instrumentation.GrpcNetClient
- Added overloads which accept a name to the
TracerProviderBuilder
AddGrpcClientInstrumentation
extension to allow for more fine-grained
options management
(#3665)
OpenTelemetry.Instrumentation.Http
-
Dropped
netstandard2.0
target and addednet6.0
. .NET 5 reached EOL
in May 2022 and .NET Core 3.1 reaches EOL in December 2022. End of support
dates for .NET are published
here.
The instrumentation for HttpClient now requires .NET 6 or later.
This does not affect applications targeting .NET Framework.
(#3664) -
Added overloads which accept a name to the
TracerProviderBuilder
AddHttpClientInstrumentation
extension to allow for more fine-grained
options management
(#3664,
#3667)
OpenTelemetry.Instrumentation.SqlClient
OpenTelemetry.Shims.OpenTracing
core-1.3.1
OpenTelemetry.Api
- Added support for the .NET7 version of the
System.Diagnostics.DiagnosticSource
package (#3605). For more details, refer to the issue (#3629).
OpenTelemetry.Exporter.Jaeger
- Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).
OpenTelemetry.Exporter.OpenTelemetryProtocol
- Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).
OpenTelemetry.Exporter.Zipkin
- Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).