Class InMemoryMetricExporter
java.lang.Object
io.opentelemetry.sdk.testing.exporter.InMemoryMetricExporter
- All Implemented Interfaces:
io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector,io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector,io.opentelemetry.sdk.metrics.export.MetricExporter,Closeable,AutoCloseable
public final class InMemoryMetricExporter
extends Object
implements io.opentelemetry.sdk.metrics.export.MetricExporter
A
MetricExporter implementation that can be used to test OpenTelemetry integration.
Can be created using InMemoryMetricExporter.create()
Example usage:
public class InMemoryMetricExporterExample {
// creating InMemoryMetricExporter
private final InMemoryMetricExporter exporter = InMemoryMetricExporter.create();
private final MeterSdkProvider meterSdkProvider = OpenTelemetrySdk.getMeterProvider();
private final Meter meter = meterSdkProvider.get("InMemoryMetricExporterExample");
private IntervalMetricReader intervalMetricReader;
void setup() {
intervalMetricReader =
IntervalMetricReader.builder()
.setMetricExporter(exporter)
.setMetricProducers(Collections.singletonList(meterSdkProvider.getMetricProducer()))
.setExportIntervalMillis(1000)
.build();
}
LongCounter generateLongCounterMeter(String name) {
return meter.longCounterBuilder(name).setDescription("Sample LongCounter").build();
}
public static void main(String[] args) throws InterruptedException {
InMemoryMetricExporterExample example = new InMemoryMetricExporterExample();
example.setup();
example.generateLongCounterMeter("counter-1");
}
}
- Since:
- 1.14.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic InMemoryMetricExportercreate()Returns a newInMemoryMetricExporterwith a aggregation temporality ofAggregationTemporality.CUMULATIVE.static InMemoryMetricExportercreate(io.opentelemetry.sdk.metrics.data.AggregationTemporality aggregationTemporality) Returns a newInMemoryMetricExporterwith the givenaggregationTemporality.io.opentelemetry.sdk.common.CompletableResultCodeexport(Collection<io.opentelemetry.sdk.metrics.data.MetricData> metrics) Exports the collection ofMetrics into the inmemory queue.io.opentelemetry.sdk.common.CompletableResultCodeflush()The InMemory exporter does not batch metrics, so this method will immediately return with success.io.opentelemetry.sdk.metrics.data.AggregationTemporalitygetAggregationTemporality(io.opentelemetry.sdk.metrics.InstrumentType instrumentType) List<io.opentelemetry.sdk.metrics.data.MetricData>Returns aListof the finishedMetrics, represented byMetricData.voidreset()Clears the internalListof finishedMetrics.io.opentelemetry.sdk.common.CompletableResultCodeshutdown()Clears the internalListof finishedMetrics.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector
withMethods inherited from interface io.opentelemetry.sdk.metrics.export.MetricExporter
close, getDefaultAggregation, getMemoryMode
-
Method Details
-
create
Returns a newInMemoryMetricExporterwith a aggregation temporality ofAggregationTemporality.CUMULATIVE. -
create
public static InMemoryMetricExporter create(io.opentelemetry.sdk.metrics.data.AggregationTemporality aggregationTemporality) Returns a newInMemoryMetricExporterwith the givenaggregationTemporality. -
getFinishedMetricItems
Returns aListof the finishedMetrics, represented byMetricData.- Returns:
- a
Listof the finishedMetrics.
-
reset
public void reset()Clears the internalListof finishedMetrics.Does not reset the state of this exporter if already shutdown.
-
getAggregationTemporality
public io.opentelemetry.sdk.metrics.data.AggregationTemporality getAggregationTemporality(io.opentelemetry.sdk.metrics.InstrumentType instrumentType) - Specified by:
getAggregationTemporalityin interfaceio.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector
-
export
public io.opentelemetry.sdk.common.CompletableResultCode export(Collection<io.opentelemetry.sdk.metrics.data.MetricData> metrics) Exports the collection ofMetrics into the inmemory queue.If this is called after
shutdown, this will returnResultCode.FAILURE.- Specified by:
exportin interfaceio.opentelemetry.sdk.metrics.export.MetricExporter
-
flush
public io.opentelemetry.sdk.common.CompletableResultCode flush()The InMemory exporter does not batch metrics, so this method will immediately return with success.- Specified by:
flushin interfaceio.opentelemetry.sdk.metrics.export.MetricExporter- Returns:
- always Success
-
shutdown
public io.opentelemetry.sdk.common.CompletableResultCode shutdown()Clears the internalListof finishedMetrics.Any subsequent call to export() function on this MetricExporter, will return
CompletableResultCode.ofFailure()- Specified by:
shutdownin interfaceio.opentelemetry.sdk.metrics.export.MetricExporter
-