envoyproxy / envoyproxy/envoy

Use W3C tracecontext instead of x-request-id

Open
#30,052 6 comments 23 reactions 0 assignees View on GitHub
area/opentelemetry area/tracing enhancement help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
437

Description

*Title*: Use W3C tracecontext instead of x-request-id

*Description*:
W3C tracecontext (https://www.w3.org/TR/trace-context/) could be used instead of `x-request-id` (https://http.dev/x-request-id) header to carry request ID and sampling decision.

The propagation of the header `x-request-id` is not supported by other ecosystems that implement automatic in-process header propagation e.g. OpenTelmetry auto-instrumentation libraries.

The OpenTelemetry auto-instrumentation simplifies header propagation for tracing capabilities in Envoy. The OTEL SDK has official support for B3 multi (used by envoy), Jaeger and W3C tracecontext.

It seems unlikely that OpenTelemetry will support `x-request-id` header propagators across languages https://github.com/open-telemetry/opentelemetry-specification/issues/2912

[optional *Relevant Links*:]
* https://istio.io/latest/docs/tasks/observability/distributed-tracing/overview/
* https://github.com/envoyproxy/envoy/blob/a9ae08bea8964a4deda789c12578777e7f3657ce/docs/root/intro/arch_overview/observability/tracing.rst#L13
* https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-client-trace-id

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.