I’ve been frustrated about how Istio is forcing your applications to use the B3 headers, while Envoy proxy supports a lot more. So I decided to create a proposal… but as I’m quite new to the governance process I could use some help with a sponsor.
My high level idea is this:
- Configure global what headers format should be used. This should be different for HTTP vs gRPC (gRPC has it own default binary tracing metadata).
- Override the format per deployment, maybe your using an application from an other team that has an other propagation format.
- Configurable format translation (example if you have REST<> gRPC configured: W3C Trace <-> gRPC binary translation)
- This should be compatible with current implementations as you could still default to B3 if not configured.
This would enable my ideal setup:
- Kubernetes, with the OpenCensus/OpenTelemetry agent/collector installed -> export to favorite tracing product
- REST Container with OC/OT installed and the W3C headers configured
- gRPC Container with OC/OT installed and using the default gRPC binary tracing
- Istio+Application traces will be correlated, along with logs and metrics.
I could directly try to dive in the code, but I want to make the proper proposal. Comments and tips welcome. Thanks.