Skip to content

Commit 53db97b

Browse files
authored
Higher granularity in request / response size metrics (#639)
* smaller buckets Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com> * factor 4 Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com> * fix tests Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com> --------- Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com>
1 parent 36b56b1 commit 53db97b

File tree

3 files changed

+53
-102
lines changed

3 files changed

+53
-102
lines changed

middleware/grpc_stats_test.go

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -83,52 +83,42 @@ func TestGrpcStats(t *testing.T) {
8383
err = testutil.GatherAndCompare(reg, bytes.NewBufferString(`
8484
# HELP received_payload_bytes Size of received gRPC messages
8585
# TYPE received_payload_bytes histogram
86+
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4"} 0
87+
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="16"} 1
88+
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="64"} 1
89+
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="256"} 1
8690
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1024"} 1
87-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2048"} 1
8891
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4096"} 1
89-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="8192"} 1
9092
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="16384"} 1
91-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="32768"} 1
9293
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="65536"} 1
93-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="131072"} 1
9494
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="262144"} 1
95-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="524288"} 1
9695
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.048576e+06"} 1
97-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2.097152e+06"} 1
9896
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4.194304e+06"} 1
99-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="8.388608e+06"} 1
10097
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.6777216e+07"} 2
101-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="3.3554432e+07"} 2
10298
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="6.7108864e+07"} 2
103-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.34217728e+08"} 2
10499
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2.68435456e+08"} 2
105-
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="5.36870912e+08"} 2
100+
received_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.073741824e+09"} 2
106101
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="+Inf"} 2
107102
received_payload_bytes_sum{method="gRPC", route="/grpc.health.v1.Health/Check"} 8.388623e+06
108103
received_payload_bytes_count{method="gRPC", route="/grpc.health.v1.Health/Check"} 2
109104
110105
# HELP sent_payload_bytes Size of sent gRPC
111106
# TYPE sent_payload_bytes histogram
107+
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4"} 0
108+
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="16"} 1
109+
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="64"} 1
110+
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="256"} 1
112111
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1024"} 1
113-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2048"} 1
114112
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4096"} 1
115-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="8192"} 1
116113
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="16384"} 1
117-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="32768"} 1
118114
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="65536"} 1
119-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="131072"} 1
120115
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="262144"} 1
121-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="524288"} 1
122116
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.048576e+06"} 1
123-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2.097152e+06"} 1
124117
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="4.194304e+06"} 1
125-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="8.388608e+06"} 1
126118
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.6777216e+07"} 1
127-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="3.3554432e+07"} 1
128119
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="6.7108864e+07"} 1
129-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.34217728e+08"} 1
130120
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="2.68435456e+08"} 1
131-
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="5.36870912e+08"} 1
121+
sent_payload_bytes_bucket{method="gRPC",route="/grpc.health.v1.Health/Check",le="1.073741824e+09"} 1
132122
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="+Inf"} 1
133123
sent_payload_bytes_sum{method="gRPC", route="/grpc.health.v1.Health/Check"} 7
134124
sent_payload_bytes_count{method="gRPC", route="/grpc.health.v1.Health/Check"} 1
@@ -225,52 +215,42 @@ func TestGrpcStatsStreaming(t *testing.T) {
225215
err = testutil.GatherAndCompare(reg, bytes.NewBufferString(`
226216
# HELP received_payload_bytes Size of received gRPC messages
227217
# TYPE received_payload_bytes histogram
218+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4"} 0
219+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="16"} 0
220+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="64"} 0
221+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="256"} 0
228222
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1024"} 0
229-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2048"} 0
230223
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4096"} 0
231-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="8192"} 0
232224
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="16384"} 0
233-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="32768"} 0
234225
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="65536"} 0
235-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="131072"} 0
236226
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="262144"} 0
237-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="524288"} 0
238227
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+06"} 0
239-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.097152e+06"} 1
240228
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4.194304e+06"} 3
241-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="8.388608e+06"} 5
242229
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.6777216e+07"} 5
243-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="3.3554432e+07"} 5
244230
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="6.7108864e+07"} 5
245-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.34217728e+08"} 5
246231
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.68435456e+08"} 5
247-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.36870912e+08"} 5
232+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.073741824e+09"} 5
248233
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="+Inf"} 5
249234
received_payload_bytes_sum{method="gRPC",route="/middleware.EchoServer/Process"} 1.5728689e+07
250235
received_payload_bytes_count{method="gRPC",route="/middleware.EchoServer/Process"} 5
251236
252237
# HELP sent_payload_bytes Size of sent gRPC
253238
# TYPE sent_payload_bytes histogram
239+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4"} 0
240+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="16"} 0
241+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="64"} 0
242+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="256"} 0
254243
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1024"} 0
255-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2048"} 0
256244
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4096"} 0
257-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="8192"} 0
258245
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="16384"} 0
259-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="32768"} 0
260246
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="65536"} 0
261-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="131072"} 0
262247
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="262144"} 0
263-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="524288"} 0
264248
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+06"} 1
265-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.097152e+06"} 3
266249
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="4.194304e+06"} 5
267-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="8.388608e+06"} 5
268250
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.6777216e+07"} 5
269-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="3.3554432e+07"} 5
270251
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="6.7108864e+07"} 5
271-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.34217728e+08"} 5
272252
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.68435456e+08"} 5
273-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.36870912e+08"} 5
253+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.073741824e+09"} 5
274254
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="+Inf"} 5
275255
sent_payload_bytes_sum{method="gRPC",route="/middleware.EchoServer/Process"} 7.864367e+06
276256
sent_payload_bytes_count{method="gRPC",route="/middleware.EchoServer/Process"} 5

middleware/instrument.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
)
2222

2323
// BodySizeBuckets defines buckets for request/response body sizes.
24-
var BodySizeBuckets = prometheus.ExponentialBuckets(1024, 2, 20)
24+
var BodySizeBuckets = prometheus.ExponentialBuckets(4, 4, 15)
2525

2626
// RouteMatcher matches routes
2727
type RouteMatcher interface {

0 commit comments

Comments
 (0)