entry span ID, local root ID or something else?

40 views
Skip to first unread message

Adrian Cole

unread,
Oct 2, 2018, 6:53:56 PM10/2/18
to Distributed Tracing Workgroup
Hi, folks.

We (zipkin we) have a function that's largely but not 100% internal
detail of how to partition spans based on the first point a tracer
sees it. This covers use cases such as dropping local intermediate
spans, or any other use cases where you want to potentially re-write
span IDs that aren't visible externally.

While not a perfect name, localRootId is being tossed around, for
reasons of the word "local" having history in Zipkin, firstly being
explicitly not remote, and also that this can describe its place as a
root in a trace tree local to a tracer.

Felix helped with this by mentioning a similar functionality in
Elasticsearch APM which is a transaction ID, mostly like what's
sometimes called entry span ID. However, this doesn't cover use cases
which are locally originated.

What we are naming could be a root span, that originated locally like:
* an android client application creating a root span in response to a gesture
* a watcher that tripped due to a file change, invoking a workflow
* a CLI application like git pull
* a scheduled task, either process scoped or internal to one
* a lambda function invoked from an unknown source

More typically, if could be a branch in an existing span, like:
* a server side RPC invocation (even if it reuses the same ID)
* a message consumption event (regardless of bulk or not, or if reprocessing)

While this discussion will be non-binding for all parties, I'd love to
hear about what you call this and/or what you would call it if you
needed to group a partition of a trace for processing.

Here's the issue in Brave that describes this, and I will weave in
feedback later into that issue if seems affecting in any way.

https://github.com/openzipkin/brave/pull/801#pullrequestreview-160223957

Best,
-A
Reply all
Reply to author
Forward
0 new messages