Closed iredelmeier closed 3 years ago
Thanks Isobel!
Will have more comments forthcoming soon. But for now, here’s a handy link to the spec for anyone following along: https://w3c.github.io/trace-context/
Re: "If the carrier passed to #Inject already contains W3C headers, they'll currently be ignored and overwritten." This seems like the correct thing to do. Why would the incoming carrier not be empty?
Closing the PR as the issue it was intended to fix #225 was closed
tl;dr: What the title says! If you want to skim, the tests are (hopefully) the key part.
Some key notes/open questions:
tracestate
is currently truncated for intra-LightStep purposes, but the full 32-byte string is retained for cross-vendor propagation.#Inject
already contains W3C headers, they'll currently be ignored and overwritten. There are a few pended tests that should demonstrate the problem.interface{}
carrier passed to#Inject
doesn't satisfyopentracing.TextMapReader
, we don't really have a choice :/traceparent
is currently ignored and always propagated astrue
/1
. We should probably propagate the prior setting, but that seems like a slightly bigger issue across the library.ot-tracer-traceid
, etc.)? The current behaviour is undefined if/when they differ.lightstep
as thetracestate
vendor key?tracestate
behaviour is undefined if the encoded LS value is > 512 characters.TextContent
type, in keeping with existing implementation. We may want to differentiate between the two at some point.