Open codefromthecrypt opened 7 years ago
cc @openzipkin/instrumentation-owners @fedj @openzipkin/core @cburroughs @rogeralsing
cc @reta
one can model single producer multiple consumer messages with a parent-child relationship similar to single-host spans in RPC. For example, by using X-B3-SpanId as the parent id of the consumer span, many consumers will end up as different spans. So, this pattern for single-host spans also applies to SPMC
https://github.com/openzipkin/b3-propagation#why-is-parentspanid-propagated
added https://github.com/openzipkin/zipkin/pull/1656 to fix dependency linking. Noticed this when implementing the simple json thing
please take a look at https://github.com/openzipkin/zipkin/pull/2302 and let me know if this is still desirable! I think this is the last step cc @ivantopo
Some are intentionally or accidentally splitting RPCs across different span IDs. For example, they might intentionally fork a span ID when receiving B3 headers. This could also happen when an intermediary forks a new span, but fails to report it to Zipkin. In either case, the client ends up as a parent span as opposed to the same span as the server.
The goal of this issue is to support the case where a client span is a parent of the server span in the existing model. This is a precondition of any work that assumes single-host (like #939), or at least a warning of what glitches will occur until single-host RPC spans are supported.
Here are the main feature areas to explore:
transparent proxies should be unimpacted as they just sent headers across without changing them or reporting anything to zipkin anyway.