Opentracing headers are lost

Hello everyone,

we recently started to use linkerd and so far it was a rather pleasent experience. Unfortunately since we started using linkerd we encountered problems with our request tracing. We are using opentracing (with stackdriver as our backend) in all our services and propagate the span ids etc. via the default opentracing headers. Unfortunately these headers seem to be lost since our services are creating now new root spans on every request.
In the debugging output I also can’t see the opentracing headers. On the other hand we transport request context in our headers an all these header keys start with ‘X-’ (in contrast to the opentracing headers). These seem to be available.
How does linkerd handle custom headers? Is it filtering everything not starting with ‘X-’?

Generally I think it would be great if linkerd would have support for opentracing and use the tracing ids from the opentracing headers.

Our setup is rather straight forward. Kubernetes with linkerd as daemon-set and and requests are routed from service -> linkerd -> linkerd -> target-service.
Routing etc. works as expected.

Thanks in advance for the help.

linkerd should only read/set/clear headers beginning with l5d- and those dictated by RFCs (e.g. Connection). I’d be extremely surprised to learn that linkerd was clearing any other headers. (This would be a bug).

As for support for opentracing in linkerd, I agree that it would be a great feature to augment our zipkin support with opentracing support. Help wanted! :wink:


sorry for the late reply. It was just a silly mistake on our side, causing the tracing headers to be replaced with emtpy values.

Thanks for your quick reply.