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(&self) {
25 self.histograms
26 .multiproof_skipped_account_nodes
27 .record(self.multiproof_skipped_account_nodes as f64);
28 self.histograms
29 .multiproof_total_account_nodes
30 .record(self.multiproof_total_account_nodes as f64);
31 self.histograms
32 .multiproof_skipped_storage_nodes
33 .record(self.multiproof_skipped_storage_nodes as f64);
34 self.histograms
35 .multiproof_total_storage_nodes
36 .record(self.multiproof_total_storage_nodes as f64);
37 }
38
39 pub(crate) const fn increment_skipped_account_nodes(&mut self, count: u64) {
41 self.multiproof_skipped_account_nodes += count;
42 }
43
44 pub(crate) const fn increment_total_account_nodes(&mut self, count: u64) {
46 self.multiproof_total_account_nodes += count;
47 }
48
49 pub(crate) const fn increment_skipped_storage_nodes(&mut self, count: u64) {
51 self.multiproof_skipped_storage_nodes += count;
52 }
53
54 pub(crate) const fn increment_total_storage_nodes(&mut self, count: u64) {
56 self.multiproof_total_storage_nodes += count;
57 }
58}
59
60#[derive(Metrics)]
62#[metrics(scope = "sparse_state_trie")]
63pub(crate) struct SparseStateTrieHistograms {
64 pub(crate) multiproof_skipped_account_nodes: Histogram,
67 pub(crate) multiproof_total_account_nodes: Histogram,
69 pub(crate) multiproof_skipped_storage_nodes: Histogram,
72 pub(crate) multiproof_total_storage_nodes: Histogram,
74}