Class SimpleSpanProcessor

java.lang.Object
io.opentelemetry.sdk.trace.export.SimpleSpanProcessor
All Implemented Interfaces:
SpanProcessor, Closeable, AutoCloseable

public final class SimpleSpanProcessor extends Object implements SpanProcessor
An implementation of the SpanProcessor that converts the ReadableSpan to SpanData and passes it directly to the configured exporter.

This processor will cause all spans to be exported directly as they finish, meaning each export request will have a single span. Most backends will not perform well with a single span per request so unless you know what you're doing, strongly consider using BatchSpanProcessor instead, including in special environments such as serverless runtimes. SimpleSpanProcessor is generally meant to for logging exporters only.

  • Method Details

    • create

      public static SpanProcessor create(SpanExporter exporter)
      Returns a new SimpleSpanProcessor which exports spans to the SpanExporter synchronously.

      This processor will cause all spans to be exported directly as they finish, meaning each export request will have a single span. Most backends will not perform well with a single span per request so unless you know what you're doing, strongly consider using BatchSpanProcessor instead, including in special environments such as serverless runtimes. SimpleSpanProcessor is generally meant to for logging exporters only.

    • onStart

      public void onStart(io.opentelemetry.context.Context parentContext, ReadWriteSpan span)
      Description copied from interface: SpanProcessor
      Called when a Span is started, if the Span.isRecording() returns true.

      This method is called synchronously on the execution thread, should not throw or block the execution thread.

      Specified by:
      onStart in interface SpanProcessor
      Parameters:
      parentContext - the parent Context of the span that just started.
      span - the Span that just started.
    • isStartRequired

      public boolean isStartRequired()
      Description copied from interface: SpanProcessor
      Returns true if this SpanProcessor requires start events.
      Specified by:
      isStartRequired in interface SpanProcessor
      Returns:
      true if this SpanProcessor requires start events.
    • onEnd

      public void onEnd(ReadableSpan span)
      Description copied from interface: SpanProcessor
      Called when a Span is ended, if the Span.isRecording() returns true.

      This method is called synchronously on the execution thread, should not throw or block the execution thread.

      Specified by:
      onEnd in interface SpanProcessor
      Parameters:
      span - the Span that just ended.
    • isEndRequired

      public boolean isEndRequired()
      Description copied from interface: SpanProcessor
      Returns true if this SpanProcessor requires end events.
      Specified by:
      isEndRequired in interface SpanProcessor
      Returns:
      true if this SpanProcessor requires end events.
    • shutdown

      public io.opentelemetry.sdk.common.CompletableResultCode shutdown()
      Description copied from interface: SpanProcessor
      Processes all span events that have not yet been processed and closes used resources.
      Specified by:
      shutdown in interface SpanProcessor
      Returns:
      a CompletableResultCode which completes when shutdown is finished.
    • forceFlush

      public io.opentelemetry.sdk.common.CompletableResultCode forceFlush()
      Description copied from interface: SpanProcessor
      Processes all span events that have not yet been processed.
      Specified by:
      forceFlush in interface SpanProcessor
      Returns:
      a CompletableResultCode which completes when currently queued spans are finished processing.
    • toString

      public String toString()
      Overrides:
      toString in class Object