Skip to content

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

Closed
@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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions