Skip to content

[ottl] Improve how to check for nil parent_span_id #32918

Closed as not planned
Closed as not planned
@TylerHelmuth

Description

@TylerHelmuth

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions