diff --git a/pkg/proxy/metrics/metrics.go b/pkg/proxy/metrics/metrics.go index 79a08d9da7c..c12a11d0320 100644 --- a/pkg/proxy/metrics/metrics.go +++ b/pkg/proxy/metrics/metrics.go @@ -68,7 +68,12 @@ var ( Subsystem: kubeProxySubsystem, Name: "network_programming_duration_seconds", Help: "In Cluster Network Programming Latency in seconds", - Buckets: prometheus.ExponentialBuckets(0.015, 2, 20), + Buckets: merge( + prometheus.LinearBuckets(0.25, 0.25, 2), // 0.25s, 0.50s + prometheus.LinearBuckets(1, 1, 59), // 1s, 2s, 3s, ... 59s + prometheus.LinearBuckets(60, 5, 12), // 60s, 65s, 70s, ... 115s + prometheus.LinearBuckets(120, 30, 7), // 2min, 2.5min, 3min, ..., 5min + ), }, ) @@ -138,3 +143,11 @@ func SinceInMicroseconds(start time.Time) float64 { func SinceInSeconds(start time.Time) float64 { return time.Since(start).Seconds() } + +func merge(slices ...[]float64) []float64 { + result := make([]float64, 1) + for _, s := range slices { + result = append(result, s...) + } + return result +}