Class InMemoryMetricReader

java.lang.Object
io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader
All Implemented Interfaces:
io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector, io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector, io.opentelemetry.sdk.metrics.export.MetricReader

public class InMemoryMetricReader extends Object implements io.opentelemetry.sdk.metrics.export.MetricReader
A MetricReader implementation that can be used to test OpenTelemetry integration.

Can be created using InMemoryMetricReader.create()

Example usage:


 public class InMemoryMetricReaderExample {
   private final InMemoryMetricReader reader = InMemoryMetricReader.create();
   private final SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder().registerMetricReader(reader).build();
   private final Meter meter = sdkMeterProvider.get("example");
   private final LongCounter metricCallCount = meter.counterBuilder("num_collects");

   public void printMetrics() {
     metricCallCount.add(1);
     System.out.println(reader.collectAllMetrics());
   }

   public static void main(String[] args) {
     InMemoryMetricReaderExample example = new InMemoryMetricReaderExample();
     example.printMetrics();
   }
 }
 
Since:
1.14.0
  • Method Details

    • create

      public static InMemoryMetricReader create()
      Returns a new InMemoryMetricReader.
    • createDelta

      public static InMemoryMetricReader createDelta()
      Creates a new InMemoryMetricReader that prefers DELTA aggregation.
    • collectAllMetrics

      public Collection<io.opentelemetry.sdk.metrics.data.MetricData> collectAllMetrics()
      Returns all metrics accumulated since the last call.
    • register

      public void register(io.opentelemetry.sdk.metrics.export.CollectionRegistration registration)
      Specified by:
      register in interface io.opentelemetry.sdk.metrics.export.MetricReader
    • getAggregationTemporality

      public io.opentelemetry.sdk.metrics.data.AggregationTemporality getAggregationTemporality(io.opentelemetry.sdk.metrics.InstrumentType instrumentType)
      Specified by:
      getAggregationTemporality in interface io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector
    • forceFlush

      public io.opentelemetry.sdk.common.CompletableResultCode forceFlush()
      Specified by:
      forceFlush in interface io.opentelemetry.sdk.metrics.export.MetricReader
    • shutdown

      public io.opentelemetry.sdk.common.CompletableResultCode shutdown()
      Specified by:
      shutdown in interface io.opentelemetry.sdk.metrics.export.MetricReader
    • toString

      public String toString()
      Overrides:
      toString in class Object