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