reth_trie_sparse/
metrics.rs1use reth_metrics::{metrics::Histogram, Metrics};
4
5#[derive(Default, Debug)]
7pub(crate) struct SparseStateTrieMetrics {
8 pub(crate) multiproof_total_account_nodes: u64,
10 pub(crate) multiproof_total_storage_nodes: u64,
12 pub(crate) histograms: SparseStateTrieInnerMetrics,
14}
15
16impl SparseStateTrieMetrics {
17 pub(crate) fn record(&mut self) {
19 use core::mem::take;
20 self.histograms
21 .multiproof_total_account_nodes
22 .record(take(&mut self.multiproof_total_account_nodes) as f64);
23 self.histograms
24 .multiproof_total_storage_nodes
25 .record(take(&mut self.multiproof_total_storage_nodes) as f64);
26 }
27
28 pub(crate) const fn increment_total_account_nodes(&mut self, count: u64) {
30 self.multiproof_total_account_nodes += count;
31 }
32
33 pub(crate) const fn increment_total_storage_nodes(&mut self, count: u64) {
35 self.multiproof_total_storage_nodes += count;
36 }
37}
38
39#[derive(Metrics)]
41#[metrics(scope = "sparse_state_trie")]
42pub(crate) struct SparseStateTrieInnerMetrics {
43 pub(crate) multiproof_total_account_nodes: Histogram,
45 pub(crate) multiproof_total_storage_nodes: Histogram,
47}
48
49#[derive(Metrics, Clone)]
51#[metrics(scope = "parallel_sparse_trie")]
52pub(crate) struct ParallelSparseTrieMetrics {
53 pub(crate) subtries_updated: Histogram,
55 pub(crate) subtrie_hash_update_latency: Histogram,
57 pub(crate) subtrie_upper_hash_latency: Histogram,
59}
60
61impl PartialEq for ParallelSparseTrieMetrics {
62 fn eq(&self, _other: &Self) -> bool {
63 true
65 }
66}
67
68impl Eq for ParallelSparseTrieMetrics {}