reth_trie_sparse/
metrics.rs1use reth_metrics::{metrics::Histogram, Metrics};
4
5#[derive(Default, Debug)]
7pub(crate) struct SparseStateTrieMetrics {
8 pub(crate) multiproof_skipped_account_nodes: u64,
11 pub(crate) multiproof_total_account_nodes: u64,
13 pub(crate) multiproof_skipped_storage_nodes: u64,
16 pub(crate) multiproof_total_storage_nodes: u64,
18 pub(crate) histograms: SparseStateTrieHistograms,
20}
21
22impl SparseStateTrieMetrics {
23 pub(crate) fn record(&mut self) {
25 use core::mem::take;
26 self.histograms
27 .multiproof_skipped_account_nodes
28 .record(take(&mut self.multiproof_skipped_account_nodes) as f64);
29 self.histograms
30 .multiproof_total_account_nodes
31 .record(take(&mut self.multiproof_total_account_nodes) as f64);
32 self.histograms
33 .multiproof_skipped_storage_nodes
34 .record(take(&mut self.multiproof_skipped_storage_nodes) as f64);
35 self.histograms
36 .multiproof_total_storage_nodes
37 .record(take(&mut self.multiproof_total_storage_nodes) as f64);
38 }
39
40 pub(crate) const fn increment_skipped_account_nodes(&mut self, count: u64) {
42 self.multiproof_skipped_account_nodes += count;
43 }
44
45 pub(crate) const fn increment_total_account_nodes(&mut self, count: u64) {
47 self.multiproof_total_account_nodes += count;
48 }
49
50 pub(crate) const fn increment_skipped_storage_nodes(&mut self, count: u64) {
52 self.multiproof_skipped_storage_nodes += count;
53 }
54
55 pub(crate) const fn increment_total_storage_nodes(&mut self, count: u64) {
57 self.multiproof_total_storage_nodes += count;
58 }
59}
60
61#[derive(Metrics)]
63#[metrics(scope = "sparse_state_trie")]
64pub(crate) struct SparseStateTrieHistograms {
65 pub(crate) multiproof_skipped_account_nodes: Histogram,
68 pub(crate) multiproof_total_account_nodes: Histogram,
70 pub(crate) multiproof_skipped_storage_nodes: Histogram,
73 pub(crate) multiproof_total_storage_nodes: Histogram,
75}