Releases: open-telemetry/opentelemetry-dotnet
1.5.0-rc.1
OpenTelemetry
-
The default resource provided by
ResourceBuilder.CreateDefault()
now adds
thetelemetry.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
andStateValues
properties and addedBody
and
Attributes
properties onLogRecord
. 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
(akaLogRecord.StateValues
) are now automatically
included for all log messages with states implementingIReadOnlyList
or
IEnumerable
. -
OpenTelemetryLoggerOptions.ParseStateValues
is now used to tell the SDK to
parse (using reflection) attributes for custom states which do not implement
IReadOnlyList
orIEnumerable
. 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 tofalse
).
(#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 configureTracerProviderBuilder
s while the
IServiceCollection
is modifiable (before theIServiceProvider
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 asAttributes
, andState
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
to3.19.4
(see
#4201).
This also reintroduces theSystem.Reflection.Emit.Lightweight
dependency.
(#4407)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
-
The
OpenTelemetryLoggerOptions.AddOtlpExporter
extension no longer
automatically setsOpenTelemetryLoggerOptions.ParseStateValues
totrue
.
The OpenTelemetry SDK now automatically setsAttributes
(akaStateValues
)
for the common cases whereParseStateValues
was previously required.
ParseStateValues
can be set totrue
manually by users to enable parsing of
custom states which do not implementIReadOnlyList
/IEnumerable
interfaces.
(#4334) -
Updated to use the new
LogRecord.Attributes
field asLogRecord.StateValues
is now marked obsolete. There is no impact to transmitted data (StateValues
andAttributes
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
OpenTelemetry
-
Enabling
SetErrorStatusOnException
on TracerProvider will now set theStatus
property on Activity toActivityStatusCode.Error
in case of an error. This will be done in addition to current behavior of settingotel.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
-
Add support for exporting histograms aggregated using the Base2 Exponential Bucket Histogram Aggregation. (#4337)
-
Added support to set
TraceState
when converting the System.Diagnostics.Activity object to its corresponding OpenTelemetry.Proto.Trace.V1.Span object. (#4331)
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry.Exporter.Zipkin
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Extensions.Propagators
1.5.0-alpha.1 of all core components
OpenTelemetry
-
Added Exemplar support. See exemplars for instructions to enable exemplars.
-
Added
AddDetector
factory overload onResourceBuilder
. (#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 to3.22.0
so
that a new performance feature can be used instead of reflection. Removed the
dependency onSystem.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
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