From c4dc8338780594f85d2e9e75518ab24b8b00de42 Mon Sep 17 00:00:00 2001 From: Aleksandr Turchenko Date: Fri, 3 Nov 2023 01:02:43 +0400 Subject: [PATCH] Fixes issue #887: Sort histogram bounds before validation (#888) Signed-off-by: Aleksandr Turchenko --- .../metrics/simpleclient/bridge/SimpleclientCollector.java | 2 +- .../metrics/simpleclient/bridge/SimpleclientCollectorTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java b/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java index dfb88dda9..a775b2f55 100644 --- a/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java +++ b/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java @@ -288,8 +288,8 @@ private Unit convertUnit(Collector.MetricFamilySamples samples) { private ClassicHistogramBuckets makeBuckets(Map cumulativeBuckets) { List upperBounds = new ArrayList<>(cumulativeBuckets.size()); - Collections.sort(upperBounds); upperBounds.addAll(cumulativeBuckets.keySet()); + Collections.sort(upperBounds); ClassicHistogramBuckets.Builder result = ClassicHistogramBuckets.builder(); long previousCount = 0L; for (Double upperBound : upperBounds) { diff --git a/prometheus-metrics-simpleclient-bridge/src/test/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollectorTest.java b/prometheus-metrics-simpleclient-bridge/src/test/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollectorTest.java index a3445c9af..9d1e8f1b9 100644 --- a/prometheus-metrics-simpleclient-bridge/src/test/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollectorTest.java +++ b/prometheus-metrics-simpleclient-bridge/src/test/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollectorTest.java @@ -94,7 +94,7 @@ public void testHistogramComplete() throws IOException, InterruptedException { .name("response_size_bytes") .help("response size in Bytes") .labelNames("status") - .buckets(64, 256) + .buckets(64, 256, 512.1) .register(origRegistry); histogram.labels("200").observeWithExemplar(38, "trace_id", "1", "span_id", "2"); histogram.labels("200").observeWithExemplar(127, "trace_id", "3", "span_id", "4");