Class InMemorySpanExporter

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

    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