org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ImmutableExponentialHistogramData Maven / Gradle / Ivy
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
import org.apache.rocketmq.shaded.com.google.auto.value.AutoValue;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.data.AggregationTemporality;
import java.util.Collection;
import java.util.Collections;
/**
* A simple, autovalue implementation of {@link ExponentialHistogramData}. For more detailed javadoc
* on the type, see {@link ExponentialHistogramData}.
*
* See:
* https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/datamodel.md#exponentialhistogram
*
*
This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
@AutoValue
public abstract class ImmutableExponentialHistogramData implements ExponentialHistogramData {
private static final ExponentialHistogramData EMPTY =
ExponentialHistogramData.create(AggregationTemporality.CUMULATIVE, Collections.emptyList());
public static ExponentialHistogramData empty() {
return EMPTY;
}
/** Returns a new {@link ExponentialHistogramData}. */
public static ExponentialHistogramData create(
AggregationTemporality temporality, Collection points) {
return new AutoValue_ImmutableExponentialHistogramData(temporality, points);
}
ImmutableExponentialHistogramData() {}
@Override
public abstract AggregationTemporality getAggregationTemporality();
@Override
public abstract Collection getPoints();
}