Skip to content

[Node] Refactor SpanExporter to use getSpanDescendants() #12510

@mydea

Description

@mydea

Today, we keep all finished spans in the span exporter and build the span tree from there to send the spans as a single transactionEvent.

With changes we did in the v8 cycle, we can actually simplify this a lot - we can simply ignore all non-root spans in the span exporter, and generate the transactionEvent payload (spans) via getSpanDescendants(rootSpan) - we already keep track of the children there, so we may as well use this.

With this, we can simplify the exporter code a lot, and also remove handling around memory leaks - no need to keep a list of child spans in the exporter and clean it up.

Initially, let's drop any child spans that are not finished - we may revisit this later, but this is the easiest thing for now.

Metadata

Metadata

Assignees

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions