Skip to content

Commit 36b56b1

Browse files
authored
more useful body size buckets for response/request message bytes metrics (#638)
* more useful body size buckets Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com> * fixes Signed-off-by: Mauro Stettler <mauro.stettler@gmail.com> * fixing test 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 441a90a commit 36b56b1

File tree

3 files changed

+193
-76
lines changed

3 files changed

+193
-76
lines changed

middleware/grpc_stats_test.go

Lines changed: 78 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -83,28 +83,52 @@ 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="1.048576e+06"} 1
87-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+06"} 1
88-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="5.24288e+06"} 1
89-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="1.048576e+07"} 2
90-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+07"} 2
91-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="5.24288e+07"} 2
92-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="1.048576e+08"} 2
93-
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+08"} 2
86+
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
88+
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
90+
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
92+
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
94+
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
96+
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
98+
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
100+
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
102+
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
104+
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
94106
received_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="+Inf"} 2
95107
received_payload_bytes_sum{method="gRPC", route="/grpc.health.v1.Health/Check"} 8.388623e+06
96108
received_payload_bytes_count{method="gRPC", route="/grpc.health.v1.Health/Check"} 2
97109
98110
# HELP sent_payload_bytes Size of sent gRPC
99111
# TYPE sent_payload_bytes histogram
100-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="1.048576e+06"} 1
101-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+06"} 1
102-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="5.24288e+06"} 1
103-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="1.048576e+07"} 1
104-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+07"} 1
105-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="5.24288e+07"} 1
106-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="1.048576e+08"} 1
107-
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="2.62144e+08"} 1
112+
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
114+
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
116+
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
118+
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
120+
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
122+
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
124+
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
126+
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
128+
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
130+
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
108132
sent_payload_bytes_bucket{method="gRPC", route="/grpc.health.v1.Health/Check",le="+Inf"} 1
109133
sent_payload_bytes_sum{method="gRPC", route="/grpc.health.v1.Health/Check"} 7
110134
sent_payload_bytes_count{method="gRPC", route="/grpc.health.v1.Health/Check"} 1
@@ -201,28 +225,52 @@ func TestGrpcStatsStreaming(t *testing.T) {
201225
err = testutil.GatherAndCompare(reg, bytes.NewBufferString(`
202226
# HELP received_payload_bytes Size of received gRPC messages
203227
# TYPE received_payload_bytes histogram
228+
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
230+
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
232+
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
234+
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
236+
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
204238
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+06"} 0
205-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+06"} 2
206-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.24288e+06"} 4
207-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+07"} 5
208-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+07"} 5
209-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.24288e+07"} 5
210-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+08"} 5
211-
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+08"} 5
239+
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.097152e+06"} 1
240+
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
242+
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
244+
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
246+
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
212248
received_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="+Inf"} 5
213249
received_payload_bytes_sum{method="gRPC",route="/middleware.EchoServer/Process"} 1.5728689e+07
214250
received_payload_bytes_count{method="gRPC",route="/middleware.EchoServer/Process"} 5
215251
216252
# HELP sent_payload_bytes Size of sent gRPC
217253
# TYPE sent_payload_bytes histogram
254+
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
256+
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
258+
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
260+
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
262+
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
218264
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+06"} 1
219-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+06"} 4
220-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.24288e+06"} 5
221-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+07"} 5
222-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+07"} 5
223-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="5.24288e+07"} 5
224-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="1.048576e+08"} 5
225-
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.62144e+08"} 5
265+
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="2.097152e+06"} 3
266+
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
268+
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
270+
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
272+
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
226274
sent_payload_bytes_bucket{method="gRPC",route="/middleware.EchoServer/Process",le="+Inf"} 5
227275
sent_payload_bytes_sum{method="gRPC",route="/middleware.EchoServer/Process"} 7.864367e+06
228276
sent_payload_bytes_count{method="gRPC",route="/middleware.EchoServer/Process"} 5

middleware/instrument.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ import (
2020
"github.com/grafana/dskit/instrument"
2121
)
2222

23-
const mb = 1024 * 1024
24-
2523
// BodySizeBuckets defines buckets for request/response body sizes.
26-
var BodySizeBuckets = []float64{1 * mb, 2.5 * mb, 5 * mb, 10 * mb, 25 * mb, 50 * mb, 100 * mb, 250 * mb}
24+
var BodySizeBuckets = prometheus.ExponentialBuckets(1024, 2, 20)
2725

2826
// RouteMatcher matches routes
2927
type RouteMatcher interface {

0 commit comments

Comments
 (0)