Class InMemorySpanExporter

  • All Implemented Interfaces:
    io.opentelemetry.sdk.trace.export.SpanExporter, Closeable, AutoCloseable

    public final class InMemorySpanExporter
    extends Object
    implements io.opentelemetry.sdk.trace.export.SpanExporter
    A SpanExporter implementation that can be used to test OpenTelemetry integration.

    Example usage:

    
     // class MyClassTest {
     //   private final Tracer tracer = new TracerSdk();
     //   private final InMemorySpanExporter testExporter = InMemorySpanExporter.create();
     //
     //   @Before
     //   public void setup() {
     //     tracer.addSpanProcessor(SimpleSampledSpansProcessor.builder(testExporter).build());
     //   }
     //
     //   @Test
     //   public void getFinishedSpanData() {
     //     tracer.spanBuilder("span").startSpan().end();
     //
     //     List<Span> spanItems = exporter.getFinishedSpanItems();
     //     assertThat(spanItems).isNotNull();
     //     assertThat(spanItems.size()).isEqualTo(1);
     //     assertThat(spanItems.get(0).getName()).isEqualTo("span");
     //   }
     // }
     
    • Method Detail

      • create

        public static InMemorySpanExporter create()
        Returns a new instance of the InMemorySpanExporter.
        Returns:
        a new instance of the InMemorySpanExporter.
      • getFinishedSpanItems

        public List<io.opentelemetry.sdk.trace.data.SpanData> getFinishedSpanItems()
        Returns a List of the finished Spans, represented by SpanData.
        Returns:
        a List of the finished Spans.
      • reset

        public void reset()
        Clears the internal List of finished Spans.

        Does not reset the state of this exporter if already shutdown.

      • export

        public io.opentelemetry.sdk.common.CompletableResultCode export​(Collection<io.opentelemetry.sdk.trace.data.SpanData> spans)
        Specified by:
        export in interface io.opentelemetry.sdk.trace.export.SpanExporter
      • flush

        public io.opentelemetry.sdk.common.CompletableResultCode flush()
        The InMemory exporter does not batch spans, so this method will immediately return with success.
        Specified by:
        flush in interface io.opentelemetry.sdk.trace.export.SpanExporter
        Returns:
        always Success
      • shutdown

        public io.opentelemetry.sdk.common.CompletableResultCode shutdown()
        Clears the internal List of finished SpanDatas.

        Any subsequent call to export() function on this SpanExporter, will return CompletableResultCode.ofFailure()

        Specified by:
        shutdown in interface io.opentelemetry.sdk.trace.export.SpanExporter