Enforce a bucket limit of 100 to v2 metrics calls (#20761)

Enforce a bucket count limit on metrics for v2 calls.

If people hit this limit, they should move to v3, as certain calls explode with high bucket count.

Reviewers: This *should* only affect v2 calls, but the complexity is overwhelming.
This commit is contained in:
Klaus Post
2025-02-28 11:33:08 -08:00
committed by GitHub
parent f9c62dea55
commit 11507d46da
5 changed files with 68 additions and 16 deletions
+4 -4
View File
@@ -82,13 +82,13 @@ func TestGetHistogramMetrics_BucketCount(t *testing.T) {
}
}
metrics := getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), false)
metrics := getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), false, false)
// additional labels for +Inf for all histogram metrics
if expPoints := len(labels) * (len(histBuckets) + 1); expPoints != len(metrics) {
t.Fatalf("Expected %v data points when toLowerAPILabels=false but got %v", expPoints, len(metrics))
}
metrics = getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), true)
metrics = getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), true, false)
// additional labels for +Inf for all histogram metrics
if expPoints := len(labels) * (len(histBuckets) + 1); expPoints != len(metrics) {
t.Fatalf("Expected %v data points when toLowerAPILabels=true but got %v", expPoints, len(metrics))
@@ -144,7 +144,7 @@ func TestGetHistogramMetrics_Values(t *testing.T) {
}
// Accumulate regular-cased API label metrics for 'PutObject' for deeper verification
metrics := getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), false)
metrics := getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), false, false)
capitalPutObjects := make([]MetricV2, 0, len(histBuckets)+1)
for _, metric := range metrics {
if value := metric.VariableLabels["api"]; value == "PutObject" {
@@ -181,7 +181,7 @@ func TestGetHistogramMetrics_Values(t *testing.T) {
}
// Accumulate lower-cased API label metrics for 'copyobject' for deeper verification
metrics = getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), true)
metrics = getHistogramMetrics(ttfbHist, getBucketTTFBDistributionMD(), true, false)
lowerCopyObjects := make([]MetricV2, 0, len(histBuckets)+1)
for _, metric := range metrics {
if value := metric.VariableLabels["api"]; value == "copyobject" {