@@ -18,6 +18,7 @@ package metrics
18
18
19
19
import (
20
20
"context"
21
+ "math"
21
22
"net/url"
22
23
"time"
23
24
32
33
prometheus.HistogramOpts {
33
34
Name : "rest_client_request_duration_seconds" ,
34
35
Help : "Request latency in seconds. Broken down by verb, and host." ,
35
- Buckets : []float64 {0.005 , 0.025 , 0.1 , 0.25 , 0.5 , 1.0 , 2.0 , 4.0 , 8.0 , 15.0 , 30.0 , 60.0 },
36
- },
37
- []string {"verb" , "host" },
38
- )
39
-
40
- requestSize = prometheus .NewHistogramVec (
41
- prometheus.HistogramOpts {
42
- Name : "rest_client_request_size_bytes" ,
43
- Help : "Request size in bytes. Broken down by verb and host." ,
44
- // 64 bytes to 16MB
45
- Buckets : []float64 {64 , 256 , 512 , 1024 , 4096 , 16384 , 65536 , 262144 , 1048576 , 4194304 , 16777216 },
46
- },
47
- []string {"verb" , "host" },
48
- )
49
-
50
- responseSize = prometheus .NewHistogramVec (
51
- prometheus.HistogramOpts {
52
- Name : "rest_client_response_size_bytes" ,
53
- Help : "Response size in bytes. Broken down by verb and host." ,
54
- // 64 bytes to 16MB
55
- Buckets : []float64 {64 , 256 , 512 , 1024 , 4096 , 16384 , 65536 , 262144 , 1048576 , 4194304 , 16777216 },
36
+ Buckets : []float64 {math .Inf (+ 1 )}, // Intentionally using minimum buckets for better performance / lower cardinality.
56
37
},
57
38
[]string {"verb" , "host" },
58
39
)
61
42
prometheus.HistogramOpts {
62
43
Name : "rest_client_rate_limiter_duration_seconds" ,
63
44
Help : "Client side rate limiter latency in seconds. Broken down by verb, and host." ,
64
- Buckets : []float64 {0.005 , 0.025 , 0.1 , 0.25 , 0.5 , 1.0 , 2.0 , 4.0 , 8.0 , 15.0 , 30.0 , 60.0 },
45
+ Buckets : []float64 {math . Inf ( + 1 )}, // Intentionally using minimum buckets for better performance / lower cardinality.
65
46
},
66
47
[]string {"verb" , "host" },
67
48
)
@@ -91,17 +72,13 @@ func init() {
91
72
func registerClientMetrics () {
92
73
// register the metrics with our registry
93
74
Registry .MustRegister (requestLatency )
94
- Registry .MustRegister (requestSize )
95
- Registry .MustRegister (responseSize )
96
75
Registry .MustRegister (rateLimiterLatency )
97
76
Registry .MustRegister (requestResult )
98
77
Registry .MustRegister (requestRetry )
99
78
100
79
// register the metrics with client-go
101
80
clientmetrics .Register (clientmetrics.RegisterOpts {
102
81
RequestLatency : & LatencyAdapter {metric : requestLatency },
103
- RequestSize : & sizeAdapter {metric : requestSize },
104
- ResponseSize : & sizeAdapter {metric : responseSize },
105
82
RateLimiterLatency : & LatencyAdapter {metric : rateLimiterLatency },
106
83
RequestResult : & resultAdapter {metric : requestResult },
107
84
RequestRetry : & retryAdapter {requestRetry },
@@ -126,14 +103,6 @@ func (l *LatencyAdapter) Observe(_ context.Context, verb string, u url.URL, late
126
103
l .metric .WithLabelValues (verb , u .String ()).Observe (latency .Seconds ())
127
104
}
128
105
129
- type sizeAdapter struct {
130
- metric * prometheus.HistogramVec
131
- }
132
-
133
- func (s * sizeAdapter ) Observe (ctx context.Context , verb string , host string , size float64 ) {
134
- s .metric .WithLabelValues (verb , host ).Observe (size )
135
- }
136
-
137
106
type resultAdapter struct {
138
107
metric * prometheus.CounterVec
139
108
}
0 commit comments