Closed
Description
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.