[ottl] Improve how to check for nil parent_span_id #32918
Labels
enhancement
New feature or request
pkg/ottl
priority:p2
Medium
processor/transform
Transform processor
Component(s)
No response
Is your feature request related to a problem? Please describe.
Right now if you want to perform a transform only on a root span you have to write a condition that is either
parent_span_id == SpanID(0x0000000000000000)
or
parent_span_id.string == "0000000000000000"
This is because pdata represents empty parent span id as
[0, 0, 0, 0, 0, 0, 0, 0, 0]
Describe the solution you'd like
I want to make it more intuitive to identify a root span. While we have a solution, I wouldn't expect a regular user to understand that
== nil
or== ""
will not work and that they need to represent an all-zero span id instead.I think we could accomplish this with a new
IsRootSpan
converter that takes no parameters and returns returns true if the current context's parent span id is[0, 0, 0, 0, 0, 0, 0, 0, 0]
. But this solution wouldn't help users who are looking for empty span id or trace id.Another option is to update the way that the contexts handle empty span/trace ids. Instead of returning default values, they could return nil. This would be a breaking change and will remove the ability to actually interact with a trace/span id that actually is all zeros.
Describe alternatives you've considered
We could do nothing.
Additional context
This issue spawned from a user needing to modify only root spans, at which point I realized identifying a root span is difficult to stumble upon.
The text was updated successfully, but these errors were encountered: