DanielMSchmidt/apollo-opentracing

What is the point of the second tracer?

Closed this issue · 2 comments

Why are there two tracers in the interface of this plugin? Why would I want to use a different tracer for the two different kinds of traces? What exactly are these two kinds? How is a "server" trace different from a "local" trace?

I understand I can just supply the same tracer for both, but that makes it even more confusing. If I can do that, why wouldn't I?

It would be great if this could be clarified. I'd be happy to submit a PR with a documentation upgrade afterwards 😄

Some frameworks need these tracers to be different. In Zipkin for example a tracer is either a server tracer (sth receiving requests) or a client tracer (sth sending requests). Zipkin also has a special local tracer kind for internal traces. The idea was to distinguish this on the API level to be flexible enough for different opentracing compatible tracers

Huh, okay, thanks a lot for the clarification. I wish I understood better why Zipkin behaves like that, but in the context of this module, I have a better understanding now 😊