Convert ValueAtPercentile to ValueAtQuantile (#4254)
This commit is contained in:
parent
f5f99cf72d
commit
ef427f69ce
|
|
@ -18,7 +18,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
|
|
@ -78,8 +78,8 @@ class LoggingMetricExporterTest {
|
|||
1010,
|
||||
50000,
|
||||
Arrays.asList(
|
||||
ImmutableValueAtPercentile.create(0.0, 25),
|
||||
ImmutableValueAtPercentile.create(100.0, 433)))))),
|
||||
ImmutableValueAtQuantile.create(0.0, 25),
|
||||
ImmutableValueAtQuantile.create(1.0, 433)))))),
|
||||
MetricData.createLongSum(
|
||||
resource,
|
||||
instrumentationLibraryInfo,
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ final class SummaryDataPointMarshaler extends MarshalerWithSize {
|
|||
|
||||
static SummaryDataPointMarshaler create(SummaryPointData point) {
|
||||
ValueAtQuantileMarshaler[] quantileMarshalers =
|
||||
ValueAtQuantileMarshaler.createRepeated(point.getPercentileValues());
|
||||
ValueAtQuantileMarshaler.createRepeated(point.getValues());
|
||||
KeyValueMarshaler[] attributeMarshalers =
|
||||
KeyValueMarshaler.createRepeated(point.getAttributes());
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import io.opentelemetry.exporter.internal.marshal.MarshalerUtil;
|
|||
import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
|
||||
import io.opentelemetry.exporter.internal.marshal.Serializer;
|
||||
import io.opentelemetry.proto.metrics.v1.internal.SummaryDataPoint;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ final class ValueAtQuantileMarshaler extends MarshalerWithSize {
|
|||
private final double quantile;
|
||||
private final double value;
|
||||
|
||||
static ValueAtQuantileMarshaler[] createRepeated(List<ValueAtPercentile> values) {
|
||||
static ValueAtQuantileMarshaler[] createRepeated(List<ValueAtQuantile> values) {
|
||||
int numValues = values.size();
|
||||
ValueAtQuantileMarshaler[] marshalers = new ValueAtQuantileMarshaler[numValues];
|
||||
for (int i = 0; i < numValues; i++) {
|
||||
|
|
@ -26,8 +26,8 @@ final class ValueAtQuantileMarshaler extends MarshalerWithSize {
|
|||
return marshalers;
|
||||
}
|
||||
|
||||
private static ValueAtQuantileMarshaler create(ValueAtPercentile value) {
|
||||
return new ValueAtQuantileMarshaler(value.getPercentile() / 100.0, value.getValue());
|
||||
private static ValueAtQuantileMarshaler create(ValueAtQuantile value) {
|
||||
return new ValueAtQuantileMarshaler(value.getQuantile(), value.getValue());
|
||||
}
|
||||
|
||||
private ValueAtQuantileMarshaler(double quantile, double value) {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
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;
|
||||
|
|
@ -280,7 +280,7 @@ class MetricsRequestMarshalerTest {
|
|||
KV_ATTR,
|
||||
5,
|
||||
14.2,
|
||||
singletonList(ImmutableValueAtPercentile.create(0.0, 1.1))))))
|
||||
singletonList(ImmutableValueAtQuantile.create(0.0, 1.1))))))
|
||||
.containsExactly(
|
||||
SummaryDataPoint.newBuilder()
|
||||
.setStartTimeUnixNano(123)
|
||||
|
|
@ -308,8 +308,8 @@ class MetricsRequestMarshalerTest {
|
|||
9,
|
||||
18.3,
|
||||
ImmutableList.of(
|
||||
ImmutableValueAtPercentile.create(0.0, 1.1),
|
||||
ImmutableValueAtPercentile.create(100.0, 20.3))))))
|
||||
ImmutableValueAtQuantile.create(0.0, 1.1),
|
||||
ImmutableValueAtQuantile.create(1.0, 20.3))))))
|
||||
.containsExactly(
|
||||
SummaryDataPoint.newBuilder()
|
||||
.setStartTimeUnixNano(123)
|
||||
|
|
@ -691,8 +691,8 @@ class MetricsRequestMarshalerTest {
|
|||
5,
|
||||
33d,
|
||||
ImmutableList.of(
|
||||
ImmutableValueAtPercentile.create(0, 1.1),
|
||||
ImmutableValueAtPercentile.create(100.0, 20.3))))))))
|
||||
ImmutableValueAtQuantile.create(0, 1.1),
|
||||
ImmutableValueAtQuantile.create(1.0, 20.3))))))))
|
||||
.isEqualTo(
|
||||
Metric.newBuilder()
|
||||
.setName("name")
|
||||
|
|
|
|||
|
|
@ -21,7 +21,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.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.prometheus.client.Collector;
|
||||
import io.prometheus.client.Collector.MetricFamilySamples;
|
||||
|
|
@ -186,20 +186,20 @@ final class MetricAdapter {
|
|||
null,
|
||||
doubleSummaryPoint.getEpochNanos()));
|
||||
|
||||
List<ValueAtPercentile> valueAtPercentiles = doubleSummaryPoint.getPercentileValues();
|
||||
List<ValueAtQuantile> valueAtQuantiles = doubleSummaryPoint.getValues();
|
||||
List<String> labelNamesWithQuantile = new ArrayList<>(labelNames.size());
|
||||
labelNamesWithQuantile.addAll(labelNames);
|
||||
labelNamesWithQuantile.add(LABEL_NAME_QUANTILE);
|
||||
for (ValueAtPercentile valueAtPercentile : valueAtPercentiles) {
|
||||
for (ValueAtQuantile valueAtQuantile : valueAtQuantiles) {
|
||||
List<String> labelValuesWithQuantile = new ArrayList<>(labelValues.size());
|
||||
labelValuesWithQuantile.addAll(labelValues);
|
||||
labelValuesWithQuantile.add(doubleToGoString(valueAtPercentile.getPercentile()));
|
||||
labelValuesWithQuantile.add(doubleToGoString(valueAtQuantile.getQuantile()));
|
||||
samples.add(
|
||||
createSample(
|
||||
name,
|
||||
labelNamesWithQuantile,
|
||||
labelValuesWithQuantile,
|
||||
valueAtPercentile.getValue(),
|
||||
valueAtQuantile.getValue(),
|
||||
null,
|
||||
doubleSummaryPoint.getEpochNanos()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import io.opentelemetry.sdk.metrics.data.MetricData;
|
|||
import io.opentelemetry.sdk.metrics.data.MetricDataType;
|
||||
import io.opentelemetry.sdk.metrics.data.PointData;
|
||||
import io.opentelemetry.sdk.metrics.data.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
|
@ -193,16 +193,16 @@ abstract class Serializer {
|
|||
writer, name + "_count", point.getCount(), point.getAttributes(), point.getEpochNanos());
|
||||
writePoint(writer, name + "_sum", point.getSum(), point.getAttributes(), point.getEpochNanos());
|
||||
|
||||
List<ValueAtPercentile> valueAtPercentiles = point.getPercentileValues();
|
||||
for (ValueAtPercentile valueAtPercentile : valueAtPercentiles) {
|
||||
List<ValueAtQuantile> valueAtQuantiles = point.getValues();
|
||||
for (ValueAtQuantile valueAtQuantile : valueAtQuantiles) {
|
||||
writePoint(
|
||||
writer,
|
||||
name,
|
||||
valueAtPercentile.getValue(),
|
||||
valueAtQuantile.getValue(),
|
||||
point.getAttributes(),
|
||||
point.getEpochNanos(),
|
||||
"quantile",
|
||||
valueAtPercentile.getPercentile(),
|
||||
valueAtQuantile.getQuantile(),
|
||||
Collections.emptyList(),
|
||||
0,
|
||||
0);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.prometheus.client.Collector;
|
||||
import io.prometheus.client.Collector.MetricFamilySamples;
|
||||
|
|
@ -191,8 +191,8 @@ class MetricAdapterTest {
|
|||
5,
|
||||
7,
|
||||
Arrays.asList(
|
||||
ImmutableValueAtPercentile.create(0.9, 0.1),
|
||||
ImmutableValueAtPercentile.create(0.99, 0.3))))));
|
||||
ImmutableValueAtQuantile.create(0.9, 0.1),
|
||||
ImmutableValueAtQuantile.create(0.99, 0.3))))));
|
||||
private static final MetricData HISTOGRAM =
|
||||
MetricData.createDoubleHistogram(
|
||||
Resource.create(Attributes.of(stringKey("kr"), "vr")),
|
||||
|
|
@ -436,7 +436,7 @@ class MetricAdapterTest {
|
|||
KP_VP_ATTR,
|
||||
9,
|
||||
18.3,
|
||||
ImmutableList.of(ImmutableValueAtPercentile.create(0.9, 1.1))))))
|
||||
ImmutableList.of(ImmutableValueAtQuantile.create(0.9, 1.1))))))
|
||||
.containsExactly(
|
||||
new Sample(
|
||||
"full_name_count",
|
||||
|
|
@ -479,8 +479,8 @@ class MetricAdapterTest {
|
|||
9,
|
||||
18.3,
|
||||
ImmutableList.of(
|
||||
ImmutableValueAtPercentile.create(0.9, 1.1),
|
||||
ImmutableValueAtPercentile.create(0.99, 12.3))))))
|
||||
ImmutableValueAtQuantile.create(0.9, 1.1),
|
||||
ImmutableValueAtQuantile.create(0.99, 12.3))))))
|
||||
.containsExactly(
|
||||
new Sample(
|
||||
"full_name_count",
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
|
@ -181,8 +181,8 @@ class SerializerTest {
|
|||
5,
|
||||
7,
|
||||
Arrays.asList(
|
||||
ImmutableValueAtPercentile.create(0.9, 0.1),
|
||||
ImmutableValueAtPercentile.create(0.99, 0.3))))));
|
||||
ImmutableValueAtQuantile.create(0.9, 0.1),
|
||||
ImmutableValueAtQuantile.create(0.99, 0.3))))));
|
||||
private static final MetricData HISTOGRAM =
|
||||
MetricData.createDoubleHistogram(
|
||||
Resource.create(Attributes.of(stringKey("kr"), "vr")),
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ import io.opentelemetry.sdk.metrics.data.MetricData;
|
|||
import io.opentelemetry.sdk.metrics.data.SumData;
|
||||
import io.opentelemetry.sdk.metrics.data.SummaryData;
|
||||
import io.opentelemetry.sdk.metrics.data.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableDoublePointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableGaugeData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableHistogramData;
|
||||
|
|
@ -42,7 +42,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
|
@ -370,12 +370,13 @@ public final class MetricAdapter {
|
|||
return TimeUnit.SECONDS.toNanos(time.getSeconds()) + time.getNanos();
|
||||
}
|
||||
|
||||
private static List<ValueAtPercentile> mapValueAtPercentiles(
|
||||
private static List<ValueAtQuantile> mapValueAtPercentiles(
|
||||
List<Summary.Snapshot.ValueAtPercentile> valueAtPercentiles) {
|
||||
List<ValueAtPercentile> result = new ArrayList<>(valueAtPercentiles.size());
|
||||
List<ValueAtQuantile> result = new ArrayList<>(valueAtPercentiles.size());
|
||||
for (Summary.Snapshot.ValueAtPercentile censusValue : valueAtPercentiles) {
|
||||
result.add(
|
||||
ImmutableValueAtPercentile.create(censusValue.getPercentile(), censusValue.getValue()));
|
||||
ImmutableValueAtQuantile.create(
|
||||
censusValue.getPercentile() / 100.0, censusValue.getValue()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import io.opentelemetry.api.trace.SpanContext;
|
|||
import io.opentelemetry.api.trace.TraceFlags;
|
||||
import io.opentelemetry.api.trace.TraceState;
|
||||
import io.opentelemetry.sdk.metrics.data.DoubleExemplarData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
|
@ -281,7 +281,7 @@ class MetricAdapterTest {
|
|||
10L,
|
||||
5d,
|
||||
Arrays.asList(
|
||||
Summary.Snapshot.ValueAtPercentile.create(1.0, 200))))),
|
||||
Summary.Snapshot.ValueAtPercentile.create(100.0, 200))))),
|
||||
Timestamp.fromMillis(2000))),
|
||||
Timestamp.fromMillis(1000)));
|
||||
|
||||
|
|
@ -301,7 +301,7 @@ class MetricAdapterTest {
|
|||
.hasAttributes(Attributes.of(AttributeKey.stringKey("key1"), "value1"))
|
||||
.hasCount(10)
|
||||
.hasSum(5)
|
||||
.hasPercentileValues(ImmutableValueAtPercentile.create(1.0, 200)));
|
||||
.hasValues(ImmutableValueAtQuantile.create(1.0, 200)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
package io.opentelemetry.sdk.testing.assertj;
|
||||
|
||||
import io.opentelemetry.sdk.metrics.data.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import org.assertj.core.api.Assertions;
|
||||
|
||||
/** Asserts for (deprecated) Summary points. */
|
||||
|
|
@ -31,9 +31,9 @@ public class SummaryPointDataAssert
|
|||
}
|
||||
|
||||
/** Ensure the summary has exactly, in any order, the given percentile values. */
|
||||
public SummaryPointDataAssert hasPercentileValues(ValueAtPercentile... percentiles) {
|
||||
public SummaryPointDataAssert hasValues(ValueAtQuantile... values) {
|
||||
isNotNull();
|
||||
Assertions.assertThat(actual.getPercentileValues()).containsExactlyInAnyOrder(percentiles);
|
||||
Assertions.assertThat(actual.getValues()).containsExactlyInAnyOrder(values);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ 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.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableDoublePointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableGaugeData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableHistogramData;
|
||||
|
|
@ -31,7 +31,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.exponentialhistogram.ExponentialHistogramData;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.util.Arrays;
|
||||
|
|
@ -212,7 +212,7 @@ public class MetricAssertionsTest {
|
|||
ImmutableLongPointData.create(
|
||||
1, 2, Attributes.empty(), 3, Collections.singletonList(LONG_EXEMPLAR));
|
||||
|
||||
private static final ValueAtPercentile PERCENTILE_VALUE = ImmutableValueAtPercentile.create(0, 1);
|
||||
private static final ValueAtQuantile PERCENTILE_VALUE = ImmutableValueAtQuantile.create(0, 1);
|
||||
|
||||
private static final SummaryPointData DOUBLE_SUMMARY_POINT_DATA =
|
||||
ImmutableSummaryPointData.create(
|
||||
|
|
@ -467,7 +467,7 @@ public class MetricAssertionsTest {
|
|||
.hasEpochNanos(2)
|
||||
.hasStartEpochNanos(1)
|
||||
.hasAttributes(Attributes.empty())
|
||||
.hasPercentileValues(PERCENTILE_VALUE);
|
||||
.hasValues(PERCENTILE_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -481,7 +481,7 @@ public class MetricAssertionsTest {
|
|||
assertThatThrownBy(
|
||||
() ->
|
||||
assertThat(DOUBLE_SUMMARY_POINT_DATA)
|
||||
.hasPercentileValues(ImmutableValueAtPercentile.create(1, 1)))
|
||||
.hasValues(ImmutableValueAtQuantile.create(1, 1)))
|
||||
.isInstanceOf(AssertionError.class);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,25 +9,15 @@ import java.util.List;
|
|||
|
||||
/** A single data point that summarizes the values in a time series of numeric values. */
|
||||
public interface SummaryPointData extends PointData {
|
||||
/**
|
||||
* The number of values that are being summarized.
|
||||
*
|
||||
* @return the number of values that are being summarized.
|
||||
*/
|
||||
/** Returns the number of values that are being summarized. */
|
||||
long getCount();
|
||||
|
||||
/**
|
||||
* The sum of all the values that are being summarized.
|
||||
*
|
||||
* @return the sum of the values that are being summarized.
|
||||
*/
|
||||
/** Returns the sum of all the values that are being summarized. */
|
||||
double getSum();
|
||||
|
||||
/**
|
||||
* Percentile values in the summarization. Note: a percentile 0.0 represents the minimum value in
|
||||
* Returns the values in the summarization. Note: a quantile 0.0 represents the minimum value in
|
||||
* the distribution.
|
||||
*
|
||||
* @return the percentiles values.
|
||||
*/
|
||||
List<ValueAtPercentile> getPercentileValues();
|
||||
List<ValueAtQuantile> getValues();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
|
||||
/** A value within a summary. */
|
||||
public interface ValueAtPercentile {
|
||||
/**
|
||||
* The percentile of a distribution. Must be in the interval [0.0, 100.0].
|
||||
*
|
||||
* @return the percentile.
|
||||
*/
|
||||
double getPercentile();
|
||||
|
||||
/**
|
||||
* The value at the given percentile of a distribution.
|
||||
*
|
||||
* @return the value at the percentile.
|
||||
*/
|
||||
double getValue();
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.sdk.metrics.data;
|
||||
|
||||
/** A value within a summary. */
|
||||
public interface ValueAtQuantile {
|
||||
/** Returns the quantile of a distribution. Must be in the interval [0.0, 1.0]. */
|
||||
double getQuantile();
|
||||
|
||||
/** Returns the value at the given percentile of a distribution. */
|
||||
double getValue();
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ package io.opentelemetry.sdk.metrics.internal.data;
|
|||
import com.google.auto.value.AutoValue;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.sdk.metrics.data.SummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
|
@ -39,7 +39,7 @@ public abstract class ImmutableSummaryPointData implements SummaryPointData {
|
|||
Attributes attributes,
|
||||
long count,
|
||||
double sum,
|
||||
List<ValueAtPercentile> percentileValues) {
|
||||
List<ValueAtQuantile> percentileValues) {
|
||||
return new AutoValue_ImmutableSummaryPointData(
|
||||
startEpochNanos,
|
||||
epochNanos,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
package io.opentelemetry.sdk.metrics.internal.data;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.data.ValueAtQuantile;
|
||||
import javax.annotation.concurrent.Immutable;
|
||||
|
||||
/**
|
||||
|
|
@ -17,10 +17,10 @@ import javax.annotation.concurrent.Immutable;
|
|||
*/
|
||||
@Immutable
|
||||
@AutoValue
|
||||
public abstract class ImmutableValueAtPercentile implements ValueAtPercentile {
|
||||
public static ValueAtPercentile create(double percentile, double value) {
|
||||
return new AutoValue_ImmutableValueAtPercentile(percentile, value);
|
||||
public abstract class ImmutableValueAtQuantile implements ValueAtQuantile {
|
||||
public static ValueAtQuantile create(double quantile, double value) {
|
||||
return new AutoValue_ImmutableValueAtQuantile(quantile, value);
|
||||
}
|
||||
|
||||
ImmutableValueAtPercentile() {}
|
||||
ImmutableValueAtQuantile() {}
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableLongPointData;
|
|||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableSummaryPointData;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtPercentile;
|
||||
import io.opentelemetry.sdk.metrics.internal.data.ImmutableValueAtQuantile;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
|
@ -34,10 +34,10 @@ class MetricDataImplTest {
|
|||
private static final long LONG_VALUE = 10;
|
||||
private static final double DOUBLE_VALUE = 1.234;
|
||||
private static final AttributeKey<String> KEY = AttributeKey.stringKey("key");
|
||||
private static final ValueAtPercentile MINIMUM_VALUE =
|
||||
ImmutableValueAtPercentile.create(0.0, DOUBLE_VALUE);
|
||||
private static final ValueAtPercentile MAXIMUM_VALUE =
|
||||
ImmutableValueAtPercentile.create(100.0, DOUBLE_VALUE);
|
||||
private static final ValueAtQuantile MINIMUM_VALUE =
|
||||
ImmutableValueAtQuantile.create(0.0, DOUBLE_VALUE);
|
||||
private static final ValueAtQuantile MAXIMUM_VALUE =
|
||||
ImmutableValueAtQuantile.create(1.0, DOUBLE_VALUE);
|
||||
private static final LongPointData LONG_POINT =
|
||||
ImmutableLongPointData.create(
|
||||
START_EPOCH_NANOS, EPOCH_NANOS, Attributes.of(KEY, "value"), LONG_VALUE);
|
||||
|
|
@ -52,8 +52,8 @@ class MetricDataImplTest {
|
|||
LONG_VALUE,
|
||||
DOUBLE_VALUE,
|
||||
Arrays.asList(
|
||||
ImmutableValueAtPercentile.create(0.0, DOUBLE_VALUE),
|
||||
ImmutableValueAtPercentile.create(100, DOUBLE_VALUE)));
|
||||
ImmutableValueAtQuantile.create(0.0, DOUBLE_VALUE),
|
||||
ImmutableValueAtQuantile.create(1.0, DOUBLE_VALUE)));
|
||||
private static final ImmutableHistogramPointData HISTOGRAM_POINT =
|
||||
ImmutableHistogramPointData.create(
|
||||
START_EPOCH_NANOS,
|
||||
|
|
@ -155,8 +155,7 @@ class MetricDataImplTest {
|
|||
assertThat(SUMMARY_POINT.getAttributes().get(KEY)).isEqualTo("value");
|
||||
assertThat(SUMMARY_POINT.getCount()).isEqualTo(LONG_VALUE);
|
||||
assertThat(SUMMARY_POINT.getSum()).isEqualTo(DOUBLE_VALUE);
|
||||
assertThat(SUMMARY_POINT.getPercentileValues())
|
||||
.isEqualTo(Arrays.asList(MINIMUM_VALUE, MAXIMUM_VALUE));
|
||||
assertThat(SUMMARY_POINT.getValues()).isEqualTo(Arrays.asList(MINIMUM_VALUE, MAXIMUM_VALUE));
|
||||
MetricData metricData =
|
||||
MetricData.createDoubleSummary(
|
||||
Resource.empty(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue