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)) } }