Class OpenTelemetryExtension

java.lang.Object
io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension

public final class OpenTelemetryExtension extends Object implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
A JUnit5 extension which sets up the OpenTelemetrySdk for testing, resetting state between tests.

 // class CoolTest {
 //   @RegisterExtension
 //   static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
 //
 //   private final Tracer tracer = otelTesting.getOpenTelemetry().getTracer("test");
 //   private final Meter meter = otelTesting.getOpenTelemetry().getMeter("test");
 //
 //   @Test
 //   void test() {
 //     tracer.spanBuilder("name").startSpan().end();
 //     assertThat(otelTesting.getSpans()).containsExactly(expected);
 //
 //     LongCounter counter = meter.counterBuilder("counter-name").build();
 //     counter.add(1);
 //     assertThat(otelTesting.getMetrics()).satisfiesExactlyInAnyOrder(metricData -> {});
 //   }
 // }
 
  • Method Details

    • create

      public static OpenTelemetryExtension create()
      Returns a OpenTelemetryExtension with a default SDK initialized with an in-memory span exporter and W3C trace context propagation.
    • getOpenTelemetry

      public io.opentelemetry.api.OpenTelemetry getOpenTelemetry()
      Returns the OpenTelemetrySdk created by this extension.
    • getSpans

      public List<io.opentelemetry.sdk.trace.data.SpanData> getSpans()
      Returns all the exported SpanData so far.
    • getMetrics

      public List<io.opentelemetry.sdk.metrics.data.MetricData> getMetrics()
      Returns the current MetricData in AggregationTemporality.CUMULATIVE format.
      Since:
      1.15.0
    • assertTraces

      public TracesAssert assertTraces()
      Returns a TracesAssert for asserting on the currently exported traces. This method requires AssertJ to be on the classpath.
    • clearSpans

      public void clearSpans()
      Clears the collected exported SpanData. Consider making your test smaller instead of manually clearing state using this method.
    • clearMetrics

      public void clearMetrics()
      Clears all registered metric instruments, such that getMetrics() is empty.
      Since:
      1.15.0
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback