-
Notifications
You must be signed in to change notification settings - Fork 5
Description
A couple of notes from @discostu105:
Field identifiers in traceparent raise a couple of questions:
- Can the order of trace-id, parent-id, trace-flags be changed?
- Is it possible to leave some one of these identifiers out?
- Can I add my personal custom identifiers?
- Do I have to error-check a tag to assert the identifiers are correct or should I just ignore them?
In text-format of TraceContext, none one these fields are really optional, even in future versions we defined to only "expand". What's the benefit of field identifiers, vs. defining fixed-size fields in specified order?
tracestate ASCII entries: For our Dynatrace tracestate entry we would technically be able to generate a binary version too. We already use it today for tracing in various binary protocols and it has size/perf benefits. When using binary TraceContext we would be forced to use the ASCII version of our tag. Of course that's possible, but we'd lose the size/perf benefits. This is a tricky one to solve though. If a tracer needs to convert TraceContext with foreign tracestate entries from binary to text or vice-versa, it needs to know how to do that. We'd need to add a type (text or binary) to the tracestate entry.