Support for W3C Trace Context, with easy upgrade from New Relic trace context.
Distributed Tracing now supports W3C Trace Context headers for HTTP and gRPC protocols when distributed tracing is enabled. Our implementation can accept and emit both W3C trace header format and New Relic trace header format. This simplifies agent upgrades, allowing trace context to be propagated between services with older and newer releases of New Relic agents. W3C trace header format will always be accepted and emitted. New Relic trace header format will be accepted, and you can optionally disable emission of the New Relic trace header format.
When distributed tracing is enabled with
Config.DistributedTracer.Enabled = true, the Go agent will now accept W3C's
tracestateheaders when calling
Transaction.AcceptDistributedTraceHeaders. When calling
Transaction.InsertDistributedTraceHeaders, the Go agent will include the W3C headers along with the New Relic distributed tracing header, unless the New Relic trace header format is disabled using
Config.DistributedTracer.ExcludeNewRelicHeader = true.
Also, see Knowns Issues and Workarounds.
Known Issues and Workarounds
If a .NET agent is initiating distributed traces as the root service, you must update that .NET agent to version 8.24 or later before upgrading your downstream Go New Relic agents to this agent release.