Move ExponentialHistogram data to internal package. (#4217)
* Move ExponentialHistogram data to internal package. * scare * drift
This commit is contained in:
parent
dc8086dfca
commit
5cbfe9d93e
|
|
@ -10,7 +10,7 @@ import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
|
|||
import io.opentelemetry.exporter.internal.marshal.Serializer;
|
||||
import io.opentelemetry.proto.metrics.v1.internal.ExponentialHistogramDataPoint;
|
||||
import io.opentelemetry.sdk.internal.PrimitiveLongList;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
|
|||
import io.opentelemetry.exporter.internal.marshal.Serializer;
|
||||
import io.opentelemetry.exporter.internal.otlp.KeyValueMarshaler;
|
||||
import io.opentelemetry.proto.metrics.v1.internal.ExponentialHistogramDataPoint;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
|
|||
import io.opentelemetry.exporter.internal.marshal.ProtoEnumInfo;
|
||||
import io.opentelemetry.exporter.internal.marshal.Serializer;
|
||||
import io.opentelemetry.proto.metrics.v1.internal.ExponentialHistogram;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import io.opentelemetry.exporter.internal.marshal.ProtoFieldInfo;
|
|||
import io.opentelemetry.exporter.internal.marshal.Serializer;
|
||||
import io.opentelemetry.proto.metrics.v1.internal.Metric;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import java.io.IOException;
|
||||
|
||||
final class MetricMarshaler extends MarshalerWithSize {
|
||||
|
|
@ -56,7 +57,8 @@ final class MetricMarshaler extends MarshalerWithSize {
|
|||
dataField = Metric.HISTOGRAM;
|
||||
break;
|
||||
case EXPONENTIAL_HISTOGRAM:
|
||||
dataMarshaler = ExponentialHistogramMarshaler.create(metric.getExponentialHistogramData());
|
||||
dataMarshaler =
|
||||
ExponentialHistogramMarshaler.create(ExponentialHistogramData.fromMetricData(metric));
|
||||
dataField = Metric.EXPONENTIAL_HISTOGRAM;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,9 +47,6 @@ import io.opentelemetry.sdk.metrics.data.DoubleHistogramPointData;
|
|||
import io.opentelemetry.sdk.metrics.data.DoublePointData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
|
|
@ -57,6 +54,9 @@ import io.opentelemetry.sdk.metrics.data.PointData;
|
|||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableGaugeData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import io.opentelemetry.sdk.metrics.data.MetricDataType;
|
|||
import io.opentelemetry.sdk.metrics.data.PointData;
|
||||
import io.opentelemetry.sdk.metrics.data.SumData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.prometheus.client.Collector;
|
||||
import io.prometheus.client.Collector.MetricFamilySamples;
|
||||
import io.prometheus.client.Collector.MetricFamilySamples.Sample;
|
||||
|
|
@ -294,7 +295,7 @@ final class MetricAdapter {
|
|||
case HISTOGRAM:
|
||||
return metricData.getDoubleHistogramData().getPoints();
|
||||
case EXPONENTIAL_HISTOGRAM:
|
||||
return metricData.getExponentialHistogramData().getPoints();
|
||||
return ExponentialHistogramData.fromMetricData(metricData).getPoints();
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
package io.opentelemetry.sdk.testing.assertj;
|
||||
|
||||
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import org.assertj.core.api.AbstractAssert;
|
||||
import org.assertj.core.api.AbstractIterableAssert;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
package io.opentelemetry.sdk.testing.assertj;
|
||||
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import java.util.List;
|
||||
import org.assertj.core.api.AbstractAssert;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
package io.opentelemetry.sdk.testing.assertj;
|
||||
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
||||
/** Test assertions for {@link ExponentialHistogramPointData}. */
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ import io.opentelemetry.sdk.metrics.data.DoublePointData;
|
|||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.GaugeData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.data.PointData;
|
||||
import io.opentelemetry.sdk.metrics.data.SumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
||||
/** Test assertions for data heading to exporters within the Metrics SDK. */
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import io.opentelemetry.sdk.metrics.data.DoublePointData;
|
|||
import io.opentelemetry.sdk.metrics.data.LongPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricDataType;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import org.assertj.core.api.AbstractAssert;
|
||||
|
||||
|
|
@ -126,7 +127,7 @@ public class MetricDataAssert extends AbstractAssert<MetricDataAssert, MetricDat
|
|||
MetricDataType.EXPONENTIAL_HISTOGRAM,
|
||||
actual.getType());
|
||||
}
|
||||
return new ExponentialHistogramAssert(actual.getExponentialHistogramData());
|
||||
return new ExponentialHistogramAssert(ExponentialHistogramData.fromMetricData(actual));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ import io.opentelemetry.sdk.metrics.data.DoubleHistogramPointData;
|
|||
import io.opentelemetry.sdk.metrics.data.DoublePointData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableGaugeData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.sdk.metrics.data;
|
|||
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableGaugeData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
|
|
@ -313,18 +314,4 @@ public interface MetricData {
|
|||
}
|
||||
return DoubleHistogramData.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link ExponentialHistogramData} if type is {@link
|
||||
* MetricDataType#EXPONENTIAL_HISTOGRAM}, otherwise a default empty data.
|
||||
*
|
||||
* @return the {@link ExponentialHistogramData} if type is {@link
|
||||
* MetricDataType#EXPONENTIAL_HISTOGRAM}, otherwise a default empty data.
|
||||
*/
|
||||
default ExponentialHistogramData getExponentialHistogramData() {
|
||||
if (getType() == MetricDataType.EXPONENTIAL_HISTOGRAM) {
|
||||
return (ExponentialHistogramData) getData();
|
||||
}
|
||||
return DoubleExponentialHistogramData.EMPTY;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ import io.opentelemetry.api.common.Attributes;
|
|||
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
|
||||
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
|
||||
import io.opentelemetry.sdk.metrics.data.ExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.exemplar.ExemplarReservoir;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.internal.descriptor.MetricDescriptor;
|
||||
import io.opentelemetry.sdk.metrics.internal.state.ExponentialCounterFactory;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
package io.opentelemetry.sdk.metrics.internal.aggregator;
|
||||
|
||||
import io.opentelemetry.sdk.internal.PrimitiveLongList;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.state.ExponentialCounter;
|
||||
import io.opentelemetry.sdk.metrics.internal.state.ExponentialCounterFactory;
|
||||
import java.util.Collections;
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import io.opentelemetry.sdk.internal.PrimitiveLongList;
|
|||
import io.opentelemetry.sdk.metrics.common.InstrumentType;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.DoublePointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.LongPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.descriptor.InstrumentDescriptor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,12 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
/** {@link GaugeData} recorded uses {@code double}s. */
|
||||
/**
|
||||
* {@link GaugeData} recorded uses {@code double}s.
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@Immutable
|
||||
@AutoValue
|
||||
public abstract class ImmutableGaugeData<T extends PointData> implements GaugeData<T> {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import java.util.List;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
|
@ -19,6 +19,9 @@ import javax.annotation.concurrent.Immutable;
|
|||
* Then, if <code>offset</code> is 0, the bucket lower bounds would be 1.0, 2.0, 4.0, 8.0, etc. If
|
||||
* <code>offset</code> is -3, the bucket lower bounds would be 0.125, 0.25, 0.5, 1.0, 2,0, etc. If
|
||||
* <code>offset</code> is +3, the bucket lower bounds would be 8.0, 16.0, 32.0, etc.
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@Immutable
|
||||
public interface ExponentialHistogramBuckets {
|
||||
|
|
@ -3,8 +3,12 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
|
||||
import io.opentelemetry.sdk.metrics.data.Data;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricDataType;
|
||||
import java.util.Collection;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
|
|
@ -19,6 +23,9 @@ import javax.annotation.concurrent.Immutable;
|
|||
*
|
||||
* <p><i>Note: This is called "ExponentialHistogramData" to reflect which primitives are used to
|
||||
* record it, however "ExponentialHistogram" is the equivalent OTLP type.</i>
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@Immutable
|
||||
public interface ExponentialHistogramData extends Data<ExponentialHistogramPointData> {
|
||||
|
|
@ -30,7 +37,21 @@ public interface ExponentialHistogramData extends Data<ExponentialHistogramPoint
|
|||
*/
|
||||
static ExponentialHistogramData create(
|
||||
AggregationTemporality temporality, Collection<ExponentialHistogramPointData> points) {
|
||||
return DoubleExponentialHistogramData.create(temporality, points);
|
||||
return ImmutableExponentialHistogramData.create(temporality, points);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link ExponentialHistogramData} if type is {@link
|
||||
* MetricDataType#EXPONENTIAL_HISTOGRAM}, otherwise a default empty data.
|
||||
*
|
||||
* @return the {@link ExponentialHistogramData} if type is {@link
|
||||
* MetricDataType#EXPONENTIAL_HISTOGRAM}, otherwise a default empty data.
|
||||
*/
|
||||
static ExponentialHistogramData fromMetricData(MetricData data) {
|
||||
if (data.getType() == MetricDataType.EXPONENTIAL_HISTOGRAM) {
|
||||
return (ExponentialHistogramData) data.getData();
|
||||
}
|
||||
return ImmutableExponentialHistogramData.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -3,9 +3,11 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.metrics.data.ExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.PointData;
|
||||
import java.util.List;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
|
|
@ -19,6 +21,9 @@ import javax.annotation.concurrent.Immutable;
|
|||
*
|
||||
* <p>See:
|
||||
* https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/datamodel.md#exponentialhistogram
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@Immutable
|
||||
public interface ExponentialHistogramPointData extends PointData {
|
||||
|
|
@ -39,7 +44,7 @@ public interface ExponentialHistogramPointData extends PointData {
|
|||
Attributes attributes,
|
||||
List<ExemplarData> exemplars) {
|
||||
|
||||
return DoubleExponentialHistogramPointData.create(
|
||||
return ImmutableExponentialHistogramPointData.create(
|
||||
scale,
|
||||
sum,
|
||||
zeroCount,
|
||||
|
|
@ -3,9 +3,10 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
|
|
@ -15,25 +16,28 @@ import java.util.Collections;
|
|||
*
|
||||
* <p>See:
|
||||
* https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/datamodel.md#exponentialhistogram
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@AutoValue
|
||||
abstract class DoubleExponentialHistogramData implements ExponentialHistogramData {
|
||||
public abstract class ImmutableExponentialHistogramData implements ExponentialHistogramData {
|
||||
|
||||
static final ExponentialHistogramData EMPTY =
|
||||
private static final ExponentialHistogramData EMPTY =
|
||||
ExponentialHistogramData.create(AggregationTemporality.CUMULATIVE, Collections.emptyList());
|
||||
|
||||
DoubleExponentialHistogramData() {}
|
||||
|
||||
/**
|
||||
* Create a DoubleExponentialHistogramData.
|
||||
*
|
||||
* @return a DoubleExponentialHistogramData
|
||||
*/
|
||||
static DoubleExponentialHistogramData create(
|
||||
AggregationTemporality temporality, Collection<ExponentialHistogramPointData> points) {
|
||||
return new AutoValue_DoubleExponentialHistogramData(temporality, points);
|
||||
public static ExponentialHistogramData empty() {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
/** Returns a new {@link ExponentialHistogramData}. */
|
||||
public static ExponentialHistogramData create(
|
||||
AggregationTemporality temporality, Collection<ExponentialHistogramPointData> points) {
|
||||
return new AutoValue_ImmutableExponentialHistogramData(temporality, points);
|
||||
}
|
||||
|
||||
ImmutableExponentialHistogramData() {}
|
||||
|
||||
@Override
|
||||
public abstract AggregationTemporality getAggregationTemporality();
|
||||
|
||||
|
|
@ -3,29 +3,33 @@
|
|||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.metrics.data.ExemplarData;
|
||||
import java.util.List;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
/**
|
||||
* Simple auto value implementation of {@link ExponentialHistogramPointData}. For detailed javadoc
|
||||
* on the type, see {@link ExponentialHistogramPointData}.
|
||||
*
|
||||
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
|
||||
* at any time.
|
||||
*/
|
||||
@AutoValue
|
||||
@Immutable
|
||||
abstract class DoubleExponentialHistogramPointData implements ExponentialHistogramPointData {
|
||||
abstract class ImmutableExponentialHistogramPointData implements ExponentialHistogramPointData {
|
||||
|
||||
DoubleExponentialHistogramPointData() {}
|
||||
ImmutableExponentialHistogramPointData() {}
|
||||
|
||||
/**
|
||||
* Create a DoubleExponentialHistogramPointData.
|
||||
*
|
||||
* @return a DoubleExponentialHistogramPointData.
|
||||
*/
|
||||
static DoubleExponentialHistogramPointData create(
|
||||
static ImmutableExponentialHistogramPointData create(
|
||||
int scale,
|
||||
double sum,
|
||||
long zeroCount,
|
||||
|
|
@ -38,7 +42,7 @@ abstract class DoubleExponentialHistogramPointData implements ExponentialHistogr
|
|||
|
||||
long count = zeroCount + positiveBuckets.getTotalCount() + negativeBuckets.getTotalCount();
|
||||
|
||||
return new AutoValue_DoubleExponentialHistogramPointData(
|
||||
return new AutoValue_ImmutableExponentialHistogramPointData(
|
||||
scale,
|
||||
sum,
|
||||
count,
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/** The data format to model exponential histograms for export. */
|
||||
@ParametersAreNonnullByDefault
|
||||
package io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
|
@ -17,9 +17,10 @@ import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
|
|||
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.data.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.data.MetricData;
|
||||
import io.opentelemetry.sdk.metrics.exemplar.ExemplarReservoir;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramBuckets;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.metrics.internal.descriptor.MetricDescriptor;
|
||||
import io.opentelemetry.sdk.metrics.internal.state.ExponentialCounterFactory;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
|
|
@ -506,7 +507,7 @@ class DoubleExponentialHistogramAggregatorTest {
|
|||
0,
|
||||
10,
|
||||
100);
|
||||
assertThat(metricDataDelta.getExponentialHistogramData().getAggregationTemporality())
|
||||
assertThat(ExponentialHistogramData.fromMetricData(metricDataDelta).getAggregationTemporality())
|
||||
.isEqualTo(AggregationTemporality.DELTA);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue