From 19387cafab76133c2e7642de4aac8c81b9f4f8c7 Mon Sep 17 00:00:00 2001 From: Shubhendu Date: Fri, 19 Jan 2024 04:21:28 +0530 Subject: [PATCH] Use +Inf label additionally for Histogram metrics (#18807) --- cmd/metrics-v2.go | 12 ++++++++++++ cmd/metrics-v2_test.go | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cmd/metrics-v2.go b/cmd/metrics-v2.go index f6b043d08..1022bfe8c 100644 --- a/cmd/metrics-v2.go +++ b/cmd/metrics-v2.go @@ -20,6 +20,7 @@ package cmd import ( "context" "fmt" + "math" "net/http" "runtime" "strconv" @@ -1715,6 +1716,17 @@ func getHistogramMetrics(hist *prometheus.HistogramVec, desc MetricDescription) } metrics = append(metrics, metric) } + // add metrics with +Inf label + labels1 := make(map[string]string) + for _, lp := range dtoMetric.GetLabel() { + labels1[*lp.Name] = *lp.Value + } + labels1["le"] = fmt.Sprintf("%.3f", math.Inf(+1)) + metrics = append(metrics, Metric{ + Description: desc, + VariableLabels: labels1, + Value: dtoMetric.Counter.GetValue(), + }) } return metrics } diff --git a/cmd/metrics-v2_test.go b/cmd/metrics-v2_test.go index 088fb4041..c91c209fc 100644 --- a/cmd/metrics-v2_test.go +++ b/cmd/metrics-v2_test.go @@ -81,7 +81,8 @@ func TestGetHistogramMetrics(t *testing.T) { } metrics := getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD()) - if expPoints := len(labels) * len(histBuckets); expPoints != len(metrics) { + // additional labels for +Inf for all histogram metrics + if expPoints := len(labels) * (len(histBuckets) + 1); expPoints != len(metrics) { t.Fatalf("Expected %v data points but got %v", expPoints, len(metrics)) } }