mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-29 00:57:57 +00:00
efcea0edab
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: James Wilson <james@jsdw.me>
30 lines
897 B
TOML
30 lines
897 B
TOML
[package]
|
|
name = "sc-rpc-server"
|
|
version = "11.0.0"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
homepage = "https://substrate.io"
|
|
repository.workspace = true
|
|
description = "Substrate RPC servers."
|
|
readme = "README.md"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
targets = ["x86_64-unknown-linux-gnu"]
|
|
|
|
[dependencies]
|
|
jsonrpsee = { version = "0.22", features = ["server"] }
|
|
log = { workspace = true, default-features = true }
|
|
serde_json = { workspace = true, default-features = true }
|
|
tokio = { version = "1.22.0", features = ["parking_lot"] }
|
|
prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus" }
|
|
tower-http = { version = "0.4.0", features = ["cors"] }
|
|
tower = { version = "0.4.13", features = ["util"] }
|
|
http = "0.2.8"
|
|
hyper = "0.14.27"
|
|
futures = "0.3.29"
|
|
governor = "0.6.0"
|