All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentelemetry.sdk.testing.exporter.InMemoryMetricReaderBuilder Maven / Gradle / Ivy

/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package io.opentelemetry.sdk.testing.exporter;

import static io.opentelemetry.sdk.common.export.MemoryMode.IMMUTABLE_DATA;

import io.opentelemetry.sdk.common.export.MemoryMode;
import io.opentelemetry.sdk.metrics.InstrumentType;
import io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector;
import io.opentelemetry.sdk.metrics.export.DefaultAggregationSelector;
import io.opentelemetry.sdk.metrics.export.MetricExporter;

/**
 * Builder for {@link InMemoryMetricReader}.
 *
 * @since 1.31.0
 */
public final class InMemoryMetricReaderBuilder {
  private AggregationTemporalitySelector aggregationTemporalitySelector =
      AggregationTemporalitySelector.alwaysCumulative();
  private DefaultAggregationSelector defaultAggregationSelector =
      DefaultAggregationSelector.getDefault();
  private MemoryMode memoryMode = IMMUTABLE_DATA;

  /**
   * Creates an {@link InMemoryMetricReaderBuilder} with defaults.
   *
   * 

Creates a builder with always-cumulative {@link AggregationTemporalitySelector}, default * {@link DefaultAggregationSelector} and {@link MemoryMode#IMMUTABLE_DATA} {@link MemoryMode} */ InMemoryMetricReaderBuilder() {} /** * Sets the {@link AggregationTemporalitySelector} used by {@link * MetricExporter#getAggregationTemporality(InstrumentType)}. * * @param aggregationTemporalitySelector the {@link AggregationTemporalitySelector} to set * @return this {@link InMemoryMetricReaderBuilder} */ public InMemoryMetricReaderBuilder setAggregationTemporalitySelector( AggregationTemporalitySelector aggregationTemporalitySelector) { this.aggregationTemporalitySelector = aggregationTemporalitySelector; return this; } /** * Sets the {@link DefaultAggregationSelector} used by {@link * MetricExporter#getDefaultAggregation(InstrumentType)}. * * @param defaultAggregationSelector the {@link DefaultAggregationSelector} to set * @return this {@link InMemoryMetricReaderBuilder} */ @SuppressWarnings("unused") public InMemoryMetricReaderBuilder setDefaultAggregationSelector( DefaultAggregationSelector defaultAggregationSelector) { this.defaultAggregationSelector = defaultAggregationSelector; return this; } /** * Sets the {@link MemoryMode}. * * @param memoryMode the {@link MemoryMode} to set * @return this {@link InMemoryMetricReaderBuilder} */ public InMemoryMetricReaderBuilder setMemoryMode(MemoryMode memoryMode) { this.memoryMode = memoryMode; return this; } /** Constructs a {@link InMemoryMetricReader} based on the builder's values. */ public InMemoryMetricReader build() { return new InMemoryMetricReader( aggregationTemporalitySelector, defaultAggregationSelector, memoryMode); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy