diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-11 17:24:30 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-01-11 17:24:30 +0100 |
commit | b4fdb14f4981ff32db30a94b4d5238db3a604737 (patch) | |
tree | cbb9ff3eed300e967f6c8b2709be893daf3e39d2 /container-core | |
parent | 5ec106c6f1ddbea616a85aa43b162c72f3ca5a3c (diff) |
Don't expose types that are not available from other bundles
Diffstat (limited to 'container-core')
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); |