Class InMemorySpanExporter

java.lang.Object
io.opentelemetry.sdk.testing.exporter.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 Summary

    Modifier and Type
    Method
    Description
    Returns a new instance of the InMemorySpanExporter.
    io.opentelemetry.sdk.common.CompletableResultCode
    export(Collection<io.opentelemetry.sdk.trace.data.SpanData> spans)
     
    io.opentelemetry.sdk.common.CompletableResultCode
    The InMemory exporter does not batch spans, so this method will immediately return with success.
    List<io.opentelemetry.sdk.trace.data.SpanData>
    Returns a List of the finished Spans, represented by SpanData.
    void
    Clears the internal List of finished Spans.
    io.opentelemetry.sdk.common.CompletableResultCode
    Clears the internal List of finished SpanDatas.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.opentelemetry.sdk.trace.export.SpanExporter

    close
  • Method Details

    • 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