Class InMemorySpanExporter

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

    public final class InMemorySpanExporter
    extends java.lang.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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static InMemorySpanExporter create()
      Returns a new instance of the InMemorySpanExporter.
      io.opentelemetry.sdk.common.CompletableResultCode export​(java.util.Collection<io.opentelemetry.sdk.trace.data.SpanData> spans)  
      io.opentelemetry.sdk.common.CompletableResultCode flush()
      The InMemory exporter does not batch spans, so this method will immediately return with success.
      java.util.List<io.opentelemetry.sdk.trace.data.SpanData> getFinishedSpanItems()
      Returns a List of the finished Spans, represented by SpanData.
      void reset()
      Clears the internal List of finished Spans.
      io.opentelemetry.sdk.common.CompletableResultCode shutdown()
      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 Detail

      • create

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

        public java.util.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​(java.util.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