[Breaking change]: Switch the default trace context propagator from Legacy to W3C #45793
Open
1 of 3 tasks
Labels
breaking-change
Indicates a .NET Core breaking change
🏁 Release: .NET 10
Work items for the .NET 10 release
Description
DistributedContextPropagator is the type used to encode trace context and baggage values for propagation across process/machine boundaries. Historically, .NET used a legacy propagator as the default, which propagated baggage using the
Correlation-Context
header name. However, this legacy propagator is not fully compliant with the W3C Trace Context and Baggage specifications.Starting with .NET 10, we are adopting the W3C propagator as the default. The new W3C propagator differs from the legacy one in several key ways:
dotnet/runtime#114583
dotnet/runtime#114584
Version
.NET 10
Previous behavior
DistributedContextPropagator.CreateDefaultPropagator()
was returning instance of the legacy propagator and by defaultDistributedContextPropagator.Current
was set to that legacy instance.New behavior
DistributedContextPropagator.CreateDefaultPropagator()
will return instance of the W3C propagator and by defaultDistributedContextPropagator.Current
will be set to that W3C instance.Type of breaking change
Reason for change
This change is to fully comply with the W3C specification for propagating the trace context and baggage.
Recommended action
In .NET, we are exposing a new API
DistributedContextPropagator.CreatePreW3CPropagator()
to allow retrieve the legacy propagator instance to use if want to get the old behavior. Users can do the following to get the old behavior.Feature area
Diagnostics
Affected APIs
The text was updated successfully, but these errors were encountered: