Skip to content

Commit

Permalink
feat: Expand metrics in HTTP debug page (#205)
Browse files Browse the repository at this point in the history
## What ❔

- Almost all info in Network was added to the debug page. Exceptions are
values related to batch gossiping (which is going to be deprecated) and
message pools/queues (which I deemed too verbose to include, but can be
included if necessary).
- Fixed calculation of connection throughput. It now averages over the
last minute.
- Made all units human readable.
- As a side effect, a couple of cargo files were formatted. The only
real change was adding human_repr package. Will format the rest of the
cargo files in a separate PR.

Fixes BFT-508
  • Loading branch information
brunoffranca authored Oct 7, 2024
1 parent d41ac00 commit 2ef11bc
Show file tree
Hide file tree
Showing 10 changed files with 688 additions and 241 deletions.
7 changes: 7 additions & 0 deletions node/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

191 changes: 95 additions & 96 deletions node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,98 +16,99 @@ members = [
resolver = "2"

[workspace.package]
edition = "2021"
authors = ["The Matter Labs Team <hello@matterlabs.dev>"]
homepage = "https://matter-labs.io/"
authors = ["The Matter Labs Team <hello@matterlabs.dev>"]
edition = "2021"
homepage = "https://matter-labs.io/"
keywords = ["blockchain", "zksync"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/matter-labs/era-consensus"
license = "MIT OR Apache-2.0"
keywords = ["blockchain", "zksync"]
version = "0.3.0"
version = "0.3.0"

[workspace.dependencies]
# Crates from this repo.
zksync_consensus_bft = { version = "=0.3.0", path = "actors/bft" }
zksync_consensus_crypto = { version = "=0.3.0", path = "libs/crypto" }
zksync_consensus_bft = { version = "=0.3.0", path = "actors/bft" }
zksync_consensus_crypto = { version = "=0.3.0", path = "libs/crypto" }
zksync_consensus_executor = { version = "=0.3.0", path = "actors/executor" }
zksync_consensus_network = { version = "=0.3.0", path = "actors/network" }
zksync_consensus_roles = { version = "=0.3.0", path = "libs/roles" }
zksync_consensus_storage = { version = "=0.3.0", path = "libs/storage" }
zksync_consensus_tools = { version = "=0.3.0", path = "tools" }
zksync_consensus_utils = { version = "=0.3.0", path = "libs/utils" }
zksync_consensus_network = { version = "=0.3.0", path = "actors/network" }
zksync_consensus_roles = { version = "=0.3.0", path = "libs/roles" }
zksync_consensus_storage = { version = "=0.3.0", path = "libs/storage" }
zksync_consensus_tools = { version = "=0.3.0", path = "tools" }
zksync_consensus_utils = { version = "=0.3.0", path = "libs/utils" }

# Crates from this repo that might become independent in the future.
zksync_concurrency = { version = "=0.3.0", path = "libs/concurrency" }
zksync_protobuf = { version = "=0.3.0", path = "libs/protobuf" }
zksync_concurrency = { version = "=0.3.0", path = "libs/concurrency" }
zksync_protobuf = { version = "=0.3.0", path = "libs/protobuf" }
zksync_protobuf_build = { version = "=0.3.0", path = "libs/protobuf_build" }

# Crates from Matter Labs.
vise = "0.2.0"
vise = "0.2.0"
vise-exporter = "0.2.0"

# Crates from third-parties.
anyhow = "1"
anyhow = "1"
assert_matches = "1.5.0"
async-trait = "0.1.71"
bit-vec = "0.6"
async-trait = "0.1.71"
base64 = "0.22.1"
bit-vec = "0.6"
# portable feature makes blst code check in runtime if ADX instruction set is
# supported at every bigint multiplication:
# https://github.com/supranational/blst/commit/0dbc2ce4138e9e5d2aa941ca4cd731d8814a67a2
# and falls back to a portable implementation if not.
# Apparently the cost of the check is negligible.
# This is an undocumented feature, present since release 0.3.11:
# https://github.com/supranational/blst/releases/tag/v0.3.11
blst = { version = "0.3.13", features = ["portable"] }
clap = { version = "4.3.3", features = ["derive"] }
criterion = "0.5.1"
ed25519-dalek = { version = "2.0.0", features = ["rand_core"] }
elliptic-curve = { version = "0.13" }
heck = "0.5.0"
hex = "0.4.3"
im = "15.1.0"
jsonrpsee = { version = "0.23.0", features = ["server", "http-client"] }
k256 = { version = "0.13", features = ["ecdsa"] }
k8s-openapi = { version = "0.22.0", features = ["latest"] }
kube = { version = "0.91.0", features = ["runtime", "derive"] }
num-bigint = "0.4.4"
num-traits = "0.2.18"
once_cell = "1.17.1"
pin-project = "1.1.0"
pretty_assertions = "1.4.0"
prettyplease = "0.2.6"
proc-macro2 = "1.0.66"
prost = "0.12.0"
prost-build = "0.12.0"
prost-reflect = { version = "0.12.0", features = ["serde"] }
protox = "0.5.0"
quick-protobuf = "0.8.1"
quote = "1.0.33"
rand = "0.8.0"
rocksdb = "0.21.0"
semver = "1.0.23"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.95"
serde_yaml = "0.9"
sha3 = "0.10.8"
snow = "0.9.3"
syn = { version = "2.0.17", features = ["extra-traits"] }
tempfile = "3"
test-casing = "0.1.0"
thiserror = "1.0.40"
time = "0.3.23"
tokio = { version = "1.34.0", features = ["full"] }
tokio-rustls = "0.26.0"
tower = { version = "0.4.13" }
tracing = { version = "0.1.37", features = ["attributes"] }
blst = { version = "0.3.13", features = ["portable"] }
build_html = "2.4.0"
bytesize = "1.3.0"
clap = { version = "4.3.3", features = ["derive"] }
criterion = "0.5.1"
ed25519-dalek = { version = "2.0.0", features = ["rand_core"] }
elliptic-curve = { version = "0.13" }
heck = "0.5.0"
hex = "0.4.3"
http-body-util = "0.1"
human-repr = "1.1.0"
hyper = { version = "1", features = ["full"] }
hyper-util = { version = "0.1", features = ["full"] }
im = "15.1.0"
jsonrpsee = { version = "0.23.0", features = ["http-client", "server"] }
k256 = { version = "0.13", features = ["ecdsa"] }
k8s-openapi = { version = "0.22.0", features = ["latest"] }
kube = { version = "0.91.0", features = ["derive", "runtime"] }
num-bigint = "0.4.4"
num-traits = "0.2.18"
once_cell = "1.17.1"
pin-project = "1.1.0"
pretty_assertions = "1.4.0"
prettyplease = "0.2.6"
proc-macro2 = "1.0.66"
prost = "0.12.0"
prost-build = "0.12.0"
prost-reflect = { version = "0.12.0", features = ["serde"] }
protox = "0.5.0"
quick-protobuf = "0.8.1"
quote = "1.0.33"
rand = "0.8.0"
rocksdb = "0.21.0"
rustls-pemfile = "2"
semver = "1.0.23"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.95"
serde_yaml = "0.9"
sha3 = "0.10.8"
snow = "0.9.3"
syn = { version = "2.0.17", features = ["extra-traits"] }
tempfile = "3"
test-casing = "0.1.0"
thiserror = "1.0.40"
time = "0.3.23"
tls-listener = { version = "0.10.1", features = ["rustls"] }
tokio = { version = "1.34.0", features = ["full"] }
tokio-rustls = "0.26.0"
tower = { version = "0.4.13" }
tracing = { version = "0.1.37", features = ["attributes"] }
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "fmt"] }
zeroize = { version = "1.7.0", features = ["zeroize_derive"] }
hyper = { version = "1", features = ["full"] }
http-body-util = "0.1"
hyper-util = { version = "0.1", features = ["full"] }
tls-listener = { version = "0.10.1", features = ["rustls"] }
rustls-pemfile = "2"
base64 = "0.22.1"
build_html = "2.4.0"
bytesize = "1.3.0"
zeroize = { version = "1.7.0", features = ["zeroize_derive"] }

# Note that "bench" profile inherits from "release" profile and
# "test" profile inherits from "dev" profile.
Expand Down Expand Up @@ -137,45 +138,43 @@ opt-level = 3
opt-level = 3

[workspace.lints.rust]
unsafe_code = "deny"
missing_docs = "warn"
unreachable_pub = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "deny"
unused_qualifications = "warn"

[workspace.lints.clippy]
# restriction group
create_dir = "warn"
empty_structs_with_brackets = "warn"
float_arithmetic = "warn"
create_dir = "warn"
empty_structs_with_brackets = "warn"
float_arithmetic = "warn"
missing_docs_in_private_items = "warn"
non_ascii_literal = "warn"
partial_pub_fields = "warn"
print_stdout = "warn"
string_to_string = "warn"
suspicious_xor_used_as_pow = "warn"
try_err = "warn"
separated_literal_suffix = "warn"
non_ascii_literal = "warn"
partial_pub_fields = "warn"
print_stdout = "warn"
separated_literal_suffix = "warn"
string_to_string = "warn"
suspicious_xor_used_as_pow = "warn"
try_err = "warn"

# pedantic group
bool_to_int_with_if = "warn"
default_trait_access = "warn"
if_not_else = "warn"
manual_assert = "warn"
bool_to_int_with_if = "warn"
default_trait_access = "warn"
if_not_else = "warn"
manual_assert = "warn"
manual_instant_elapsed = "warn"
manual_let_else = "warn"
manual_ok_or = "warn"
manual_string_new = "warn"
match_bool = "warn"
wildcard_imports = "warn"
manual_let_else = "warn"
manual_ok_or = "warn"
manual_string_new = "warn"
match_bool = "warn"
wildcard_imports = "warn"

# cargo group
wildcard_dependencies = "warn"

# Produces too many false positives.
redundant_locals = "allow"
box_default = "allow"
needless_pass_by_ref_mut = "allow"
box_default = "allow"
# remove once fix to https://github.com/rust-lang/rust-clippy/issues/11764 is available on CI.
map_identity = "allow"
redundant_locals = "allow"
# &*x is not equivalent to x, because it affects borrowing in closures.
borrow_deref_ref = "allow"
71 changes: 36 additions & 35 deletions node/actors/network/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
[package]
name = "zksync_consensus_network"
version.workspace = true
edition.workspace = true
authors.workspace = true
homepage.workspace = true
license.workspace = true
authors.workspace = true
description = "ZKsync consensus network actor"
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
name = "zksync_consensus_network"
repository.workspace = true
keywords.workspace = true
description = "ZKsync consensus network actor"
version.workspace = true

[dependencies]
zksync_concurrency.workspace = true
zksync_consensus_crypto.workspace = true
zksync_consensus_roles.workspace = true
zksync_concurrency.workspace = true
zksync_consensus_crypto.workspace = true
zksync_consensus_roles.workspace = true
zksync_consensus_storage.workspace = true
zksync_consensus_utils.workspace = true
zksync_protobuf.workspace = true
zksync_consensus_utils.workspace = true
zksync_protobuf.workspace = true

anyhow.workspace = true
async-trait.workspace = true
im.workspace = true
once_cell.workspace = true
pin-project.workspace = true
prost.workspace = true
rand.workspace = true
snow.workspace = true
thiserror.workspace = true
tracing.workspace = true
vise.workspace = true
tokio.workspace = true
tokio-rustls.workspace = true
hyper.workspace = true
anyhow.workspace = true
async-trait.workspace = true
base64.workspace = true
build_html.workspace = true
bytesize.workspace = true
http-body-util.workspace = true
hyper-util.workspace = true
tls-listener.workspace = true
base64.workspace = true
build_html.workspace = true
bytesize.workspace = true
semver.workspace = true
human-repr.workspace = true
hyper-util.workspace = true
hyper.workspace = true
im.workspace = true
once_cell.workspace = true
pin-project.workspace = true
prost.workspace = true
rand.workspace = true
semver.workspace = true
snow.workspace = true
thiserror.workspace = true
tls-listener.workspace = true
tokio-rustls.workspace = true
tokio.workspace = true
tracing.workspace = true
vise.workspace = true

[dev-dependencies]
assert_matches.workspace = true
assert_matches.workspace = true
pretty_assertions.workspace = true
test-casing.workspace = true
test-casing.workspace = true

[build-dependencies]
zksync_protobuf_build.workspace = true
Expand Down
Loading

0 comments on commit 2ef11bc

Please sign in to comment.