Class 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 Detail

      • 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 ReadableSpan that just started.
      • 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 ReadableSpan that just ended.
      • 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.