-
Introduced a new metric,
http.client.request.duration
measured in seconds. The OTel SDK applies custom histogram buckets for this metric to comply with the Semantic Convention for Http Metrics. This new metric is only available for users who opt-in to the new semantic convention by configuring theOTEL_SEMCONV_STABILITY_OPT_IN
environment variable to eitherhttp
(to emit only the new metric) orhttp/dup
(to emit both the new and old metrics). (#4870)- New metric:
http.client.request.duration
- Unit:
s
(seconds) - Histogram Buckets:
0, 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
- Unit:
- Old metric:
http.client.duration
- Unit:
ms
(milliseconds) - Histogram Buckets:
0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000
- Unit:
Note: The older
http.client.duration
metric andOTEL_SEMCONV_STABILITY_OPT_IN
environment variable will eventually be removed after the HTTP semantic conventions are marked stable. At which time this instrumentation can publish a stable release. Refer to the specification for more information regarding the new HTTP semantic conventions: - New metric:
-
Added support for publishing
http.client.duration
&http.client.request.duration
metrics on .NET Framework (#4870)
Released 2023-Jul-20
- The new HTTP and network semantic conventions can be opted in to by setting
the
OTEL_SEMCONV_STABILITY_OPT_IN
environment variable. This allows for a transition period for users to experiment with the new semantic conventions and adapt as necessary. The environment variable supports the following values:http
- emit the new, frozen (proposed for stable) HTTP and networking attributes, and stop emitting the old experimental HTTP and networking attributes that the instrumentation emitted previously.http/dup
- emit both the old and the frozen (proposed for stable) HTTP and networking attributes, allowing for a more seamless transition.- The default behavior (in the absence of one of these values) is to continue
emitting the same HTTP and network semantic conventions that were emitted in
1.5.0-beta.1
. - Note: this option will eventually be removed after the new HTTP and network semantic conventions are marked stable. At which time this instrumentation can receive a stable release, and the old HTTP and network semantic conventions will no longer be supported. Refer to the specification for more information regarding the new HTTP and network semantic conventions for both spans and metrics. (#4538, #4639)
Released 2023-Jun-05
-
Bumped the package version to
1.5.0-beta.1
to keep its major and minor version in sync with that of the core packages. This would make it more intuitive for users to figure out what version of core packages would work with a given version of this package. The pre-release identifier has also been changed fromrc
tobeta
as we believe this more accurately reflects the status of this package. We believe therc
identifier will be more appropriate as semantic conventions reach stability. -
Fixed an issue of missing
http.client.duration
metric data in case of network failures (when response is not available). (#4098) -
Improve perf by avoiding boxing of common status codes values. (#4361, #4363)
Released 2023-Feb-24
- Updated OTel SDK dependency to 1.4.0
Released 2023-Feb-10
Released 2023-Feb-01
Released 2023-Jan-09
Released 2022-Dec-12
-
Added
net.peer.name
andnet.peer.port
as dimensions onhttp.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)
Released 2022-Nov-07
-
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 ofHttpClient
the new options areEnrichWithHttpRequestMessage
,EnrichWithHttpResponseMessage
andEnrichWithException
and in case ofHttpWebRequest
the new options areEnrichWithHttpWebRequest
,EnrichWithHttpWebResponse
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:HttpRequestMessage
,HttpResponsemessage
, orException
in case ofHttpClient
andHttpWebRequest
,HttpWebResponse
andException
in case ofHttpWebRequest
. 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 outgoing
HttpClient
spans. (#3828) -
Breaking change: The same API is now exposed for
net462
andnetstandard2.0
targets. TheFilter
property on options is now exposed asFilterHttpRequestMessage
(called for .NET & .NET Core) andFilterHttpWebRequest
(called for .NET Framework). (#3793)
Released 2022-Oct-17
- In case of .NET Core, additional spans created during retries will now be exported. ([#3729])
Released 2022-Sep-29
-
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)
Released 2022-Aug-18
-
Updated to use Activity native support from
System.Diagnostics.DiagnosticSource
to set activity status. (#3118) (#3555) -
Changed activity source name from
OpenTelemetry.HttpWebRequest
toOpenTelemetry.Instrumentation.Http.HttpWebRequest
forHttpWebRequest
s and fromOpenTelemetry.Instrumentation.Http
toOpenTelemetry.Instrumentation.Http.HttpClient
forHttpClient
. (#3515)
Released 2022-Aug-02
-
Added
http.scheme
tag to tracing instrumentation. (#3464) -
[Breaking] Removes
SetHttpFlavor
option. "http.flavor" is now always automatically populated. To remove this tag, set "http.flavor" to null usingActivityProcessor
. (#3380) -
Fix
Enrich
not getting invoked when SocketException due to HostNotFound occurs. (#3407)
Released 2022-Jun-03
Released 2022-Apr-15
- Removes .NET Framework 4.6.1. The minimum .NET Framework version supported is .NET 4.6.2. (#3190)
Released 2022-Apr-12
Released 2022-Mar-30
- Updated
TracerProviderBuilderExtensions.AddHttpClientInstrumentation
to supportIDeferredTracerProviderBuilder
andIOptions<HttpClientInstrumentationOptions>
(#3051)
Released 2022-Mar-04
Released 2022-Feb-02
- Fixed an issue with
Filter
andEnrich
callbacks not firing under certain conditions when gRPC is used (#2698)
Released 2021-Oct-08
-
Removes .NET Framework 4.5.2 support. The minimum .NET Framework version supported is .NET 4.6.1. (#2138)
-
HttpClient
instances created beforeAddHttpClientInstrumentation
is called on .NET Framework will now also be instrumented (#2364)
Released 2021-Jul-12
Released 2021-Jun-25
Released 2021-Jun-09
Released 2021-Apr-23
- Sanitize
http.url
attribute. (#1961) - Added
RecordException
to HttpClientInstrumentationOptions and HttpWebRequestInstrumentationOptions which allows Exception to be reported as ActivityEvent. - Update
AddHttpClientInstrumentation
extension method for .NET Framework to use only useHttpWebRequestInstrumentationOptions
(#1982)
Released 2021-Mar-19
- Leverages added AddLegacySource API from OpenTelemetry SDK to trigger Samplers and ActivityProcessors. Samplers, ActivityProcessor.OnStart will now get the Activity before any enrichment done by the instrumentation. (#1836)
- Performance optimization by leveraging sampling decision and short circuiting activity enrichment. (#1894)
Released 2021-Jan-29
-
otel.status_description
tag will no longer be set to the http status description/reason phrase for outgoing http spans. (#1579) -
Moved the DiagnosticListener filtering logic from HttpClientInstrumentation ctor to OnStartActivity method of HttpHandlerDiagnosticListener.cs; Updated the logic of OnStartActivity to inject propagation data into Headers for filtered out events as well. (#1707)
Released 2020-Nov-17
- HttpInstrumentation sets ActivitySource to activities created outside ActivitySource. (#1515)
Released 2020-Nov-5
- Instrumentation for
HttpWebRequest
no longer store raw objects likeHttpWebRequest
in Activity.CustomProperty. To enrich activity, use the Enrich action on the instrumentation. (#1407) - Renamed TextMapPropagator to TraceContextPropagator, CompositePropagator to CompositeTextMapPropagator. IPropagator is renamed to TextMapPropagator and changed from interface to abstract class. (#1427)
- Propagators.DefaultTextMapPropagator will be used as the default Propagator (#1427)
- Removed Propagator from Instrumentation Options. Instrumentation now always respect the Propagator.DefaultTextMapPropagator. (#1448)
Released 2020-Oct-16
- Instrumentation no longer store raw objects like
HttpRequestMessage
in Activity.CustomProperty. To enrich activity, use the Enrich action on the instrumentation. (#1261) - Span Status is populated as per new spec (#1313)
Released 2020-Sep-15
Released 2020-08-28
-
Rename FilterFunc to Filter.
-
HttpClient/HttpWebRequest instrumentation will now add the raw Request, Response, and/or Exception objects to the Activity it creates (#1099)
-
Changed the default propagation to support W3C Baggage (#1048)
- The default ITextFormat is now
CompositePropagator(TraceContextFormat, BaggageFormat)
. Outgoing Http request will now send Baggage using the W3C Baggage header. Previously Baggage was sent using theCorrelation-Context
header, which is now outdated.
- The default ITextFormat is now
-
Removed
AddHttpInstrumentation
andAddHttpWebRequestInstrumentation
(.NET Framework)TracerProviderBuilderExtensions
.AddHttpClientInstrumentation
will now registerHttpClient
instrumentation on .NET Core andHttpClient
+HttpWebRequest
instrumentation on .NET Framework. -
Renamed
ITextPropagator
toIPropagator
(#1190)
Released 2020-07-23
- Initial release