I’m using:
- Next.js (with OpenTelemetry auto-instrumentation)
- Grafana Tempo as tracing backend
- OTLP exporter
I filtered out several noisy spans (e.g. middleware, csrf, auth-related)
using a custom SpanProcessor.
Since then, Tempo often shows:
“Root span not yet received”
Questions:
- Does this mean I accidentally dropped the root span?
- Is it expected behavior if child spans arrive before the root?
- Is filtering spans in SpanProcessor the wrong approach?
- Would it be better to filter in Tempo/Grafana instead?
- Is there a recommended way to reduce noise in Next.js traces
without breaking trace structure?
Any guidance or best practices would be appreciated.