onEnd method
Implementation
@override
void onEnd(ReadOnlySpan span) {
if (_isShutdown) {
return;
}
final isSampled =
span.spanContext.traceFlags & TraceFlags.sampled == TraceFlags.sampled;
if (!isSampled) {
return;
}
if (_spanBuffer.length >= _maxBufferSize) {
// Drop the oldest span to bound memory; native owns durability once a
// batch is handed over.
_spanBuffer.removeAt(0);
_log.warning('Span buffer full ($_maxBufferSize); dropping oldest span');
}
_spanBuffer.add(span);
// Eager push: hand the span to native immediately. While a push is in
// flight, newly ended spans coalesce into the next one.
_flush();
}