Unverified Commit efcea0ed authored by Niklas Adolfsson's avatar Niklas Adolfsson Committed by GitHub
Browse files

rpc server: add prometheus label `is_rate_limited` (#3504)

After some discussion with @kogeler

 after the we added the rate-limit
middleware it may slow down
the rpc call timings metrics significantly because it works as follows:

1. The rate limit guard is checked when the call comes and if a slot is
available -> process the call
2. If no free spot is available then the call will be sleeping
`jitter_delay + min_time_rate_guard` then woken up and checked at most
ten times
3. If no spot is available after 10 iterations -> the call is rejected
(this may take tens of seconds)

Thus, this PR adds a label "is_rate_limited" to filter those out on the
metrics "substrate_rpc_calls_time" and "substrate_rpc_calls_finished".

I had to merge two middleware layers Metrics and RateLimit to avoid
shared state in a hacky way.

---------

Co-authored-by: default avatarJames Wilson <[email protected]>
parent 0eda0b3f
Pipeline #452121 failed with stages
in 1 hour, 43 minutes, and 36 seconds
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment