Flow PHP

CompositeSpanProcessor implements SpanProcessor

Read onlyYes
FinalYes

Forwards spans to multiple processors.

This is useful when you need to:

  • Send spans to multiple backends (e.g., both console and OTLP)
  • Combine batching with memory storage for testing
  • Add custom processing alongside export

Interfaces

SpanProcessor
Interface for processing spans when they start and end.

Methods

__construct()  : mixed
flush()  : bool
Export all pending spans and return success status.
onEnd()  : void
Called when a span ends.
onStart()  : void
Called when a span starts.
processors()  : array<string|int, SpanProcessor>
Get all processors in this composite.
shutdown()  : void
Shutdown the processor.

Methods

flush()

Export all pending spans and return success status.

public flush() : bool

Forces immediate export of any buffered spans. Returns true if all spans were successfully exported.

Return values
bool

onEnd()

Called when a span ends.

public onEnd(Span $span) : void

This is invoked synchronously when the span completes. The span is fully populated at this point (end time, status, all attributes).

Parameters
$span : Span

onStart()

Called when a span starts.

public onStart(Span $span) : void

This is invoked synchronously when the span begins. Implementations should avoid blocking operations in this method.

Parameters
$span : Span

shutdown()

Shutdown the processor.

public shutdown() : void

Implementations SHOULD flush() pending data before delegating shutdown to the underlying exporter. MUST be idempotent and MUST NOT throw.

On this page

Search results