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, Closeable, AutoCloseable

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

    • builder

      public static InMemoryMetricReaderBuilder builder()
      Creates an InMemoryMetricReaderBuilder with defaults.
      Returns:
      a builder with always-cumulative AggregationTemporalitySelector, default DefaultAggregationSelector and MemoryMode.IMMUTABLE_DATA MemoryMode
      Since:
      1.31.0
    • create

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

      public static InMemoryMetricReader create(io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector aggregationTemporalitySelector, io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector defaultAggregationSelector)
      Returns a new InMemoryMetricReader.
      Since:
      1.26.0
    • 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 collectionRegistration)
      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
    • getDefaultAggregation

      public io.opentelemetry.sdk.metrics.Aggregation getDefaultAggregation(io.opentelemetry.sdk.metrics.InstrumentType instrumentType)
      Specified by:
      getDefaultAggregation in interface io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector
      Specified by:
      getDefaultAggregation in interface io.opentelemetry.sdk.metrics.export.MetricReader
    • 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
    • getMemoryMode

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

      public String toString()
      Overrides:
      toString in class Object