aboutsummaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-11 17:24:30 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-01-11 17:24:30 +0100
commitb4fdb14f4981ff32db30a94b4d5238db3a604737 (patch)
treecbb9ff3eed300e967f6c8b2709be893daf3e39d2 /container-core
parent5ec106c6f1ddbea616a85aa43b162c72f3ca5a3c (diff)
Don't expose types that are not available from other bundles
Diffstat (limited to 'container-core')
-rw-r--r--container-core/abi-spec.json14
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/simple/UntypedMetric.java25
-rw-r--r--container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java31
3 files changed, 54 insertions, 16 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index d5be3ab52f2..bb8317c298b 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -2667,6 +2667,18 @@
"public static final enum com.yahoo.metrics.simple.UntypedMetric$AssumedType COUNTER"
]
},
+ "com.yahoo.metrics.simple.UntypedMetric$Histogram": {
+ "superClass": "java.lang.Object",
+ "interfaces": [],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public double getValueAtPercentile(double)",
+ "public void outputPercentileDistribution(java.io.PrintStream, int, java.lang.Double, boolean)"
+ ],
+ "fields": []
+ },
"com.yahoo.metrics.simple.UntypedMetric": {
"superClass": "java.lang.Object",
"interfaces": [],
@@ -2680,7 +2692,7 @@
"public double getMax()",
"public double getMin()",
"public double getSum()",
- "public org.HdrHistogram.DoubleHistogram getHistogram()",
+ "public com.yahoo.metrics.simple.UntypedMetric$Histogram getHistogram()",
"public java.lang.String toString()"
],
"fields": []
diff --git a/container-core/src/main/java/com/yahoo/metrics/simple/UntypedMetric.java b/container-core/src/main/java/com/yahoo/metrics/simple/UntypedMetric.java
index ad549fb4d91..3d82e7853d9 100644
--- a/container-core/src/main/java/com/yahoo/metrics/simple/UntypedMetric.java
+++ b/container-core/src/main/java/com/yahoo/metrics/simple/UntypedMetric.java
@@ -1,11 +1,12 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.metrics.simple;
-import java.util.logging.Logger;
-
+import com.yahoo.api.annotations.Beta;
import org.HdrHistogram.DoubleHistogram;
+import java.io.PrintStream;
import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* A gauge or a counter or... who knows? The class for storing a metric when the
@@ -114,8 +115,9 @@ public class UntypedMetric {
return metricSettings;
}
- public DoubleHistogram getHistogram() {
- return histogram;
+ @Beta
+ public Histogram getHistogram() {
+ return histogram != null ? new Histogram(histogram) : null;
}
@Override
@@ -139,4 +141,19 @@ public class UntypedMetric {
return buf.toString();
}
+ @Beta
+ public static class Histogram {
+ private final DoubleHistogram hdrHistogram;
+
+ private Histogram(DoubleHistogram hdrHistogram) { this.hdrHistogram = hdrHistogram; }
+
+ public double getValueAtPercentile(double percentile) { return hdrHistogram.getValueAtPercentile(percentile); }
+
+ public void outputPercentileDistribution(PrintStream printStream, int percentileTicksPerHalfDistance,
+ Double outputValueUnitScalingRatio, boolean useCsvFormat) {
+ hdrHistogram.outputPercentileDistribution(
+ printStream, percentileTicksPerHalfDistance, outputValueUnitScalingRatio, useCsvFormat);
+ }
+ }
+
}
diff --git a/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java b/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
index 5b5fb67f1b4..4cd0d820433 100644
--- a/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
+++ b/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
@@ -1,21 +1,30 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.metrics.simple.jdisc;
-import java.io.PrintStream;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
-
-import org.HdrHistogram.DoubleHistogram;
-
import com.yahoo.collections.Tuple2;
-import com.yahoo.container.jdisc.state.*;
+import com.yahoo.container.jdisc.state.CountMetric;
+import com.yahoo.container.jdisc.state.GaugeMetric;
+import com.yahoo.container.jdisc.state.MetricDimensions;
+import com.yahoo.container.jdisc.state.MetricSet;
+import com.yahoo.container.jdisc.state.MetricSnapshot;
+import com.yahoo.container.jdisc.state.MetricValue;
+import com.yahoo.container.jdisc.state.StateMetricContext;
import com.yahoo.metrics.simple.Bucket;
import com.yahoo.metrics.simple.Identifier;
import com.yahoo.metrics.simple.Point;
import com.yahoo.metrics.simple.UntypedMetric;
+import com.yahoo.metrics.simple.UntypedMetric.Histogram;
import com.yahoo.metrics.simple.Value;
-import com.yahoo.text.JSON;
+
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
/**
* Convert simple metrics snapshots into jdisc state snapshots.
@@ -74,7 +83,7 @@ class SnapshotConverter {
}
}
- private static List<Tuple2<String, Double>> buildPercentileList(DoubleHistogram histogram) {
+ private static List<Tuple2<String, Double>> buildPercentileList(Histogram histogram) {
List<Tuple2<String, Double>> prefixAndValues = new ArrayList<>(2);
prefixAndValues.add(new Tuple2<>("95", histogram.getValueAtPercentile(95.0d)));
prefixAndValues.add(new Tuple2<>("99", histogram.getValueAtPercentile(99.0d)));
@@ -122,7 +131,7 @@ class SnapshotConverter {
continue;
}
gotHistogram = true;
- DoubleHistogram histogram = entry.getValue().getHistogram();
+ Histogram histogram = entry.getValue().getHistogram();
Identifier id = entry.getKey();
String metricIdentifier = getIdentifierString(id);
output.println("# start of metric " + metricIdentifier);