mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-08 03:01:12 -04:00
45 lines
1.4 KiB
Rust
45 lines
1.4 KiB
Rust
use crate::stats::ParallelTrieStats;
|
|
use metrics::Histogram;
|
|
use reth_metrics::Metrics;
|
|
use reth_trie::metrics::{TrieRootMetrics, TrieType};
|
|
|
|
/// Parallel state root metrics.
|
|
#[derive(Debug)]
|
|
pub struct ParallelStateRootMetrics {
|
|
/// State trie metrics.
|
|
pub state_trie: TrieRootMetrics,
|
|
/// Parallel trie metrics.
|
|
pub parallel: ParallelTrieMetrics,
|
|
/// Storage trie metrics.
|
|
pub storage_trie: TrieRootMetrics,
|
|
}
|
|
|
|
impl Default for ParallelStateRootMetrics {
|
|
fn default() -> Self {
|
|
Self {
|
|
state_trie: TrieRootMetrics::new(TrieType::State),
|
|
parallel: ParallelTrieMetrics::default(),
|
|
storage_trie: TrieRootMetrics::new(TrieType::Storage),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl ParallelStateRootMetrics {
|
|
/// Record state trie metrics
|
|
pub fn record_state_trie(&self, stats: ParallelTrieStats) {
|
|
self.state_trie.record(stats.trie_stats());
|
|
self.parallel.precomputed_storage_roots.record(stats.precomputed_storage_roots() as f64);
|
|
self.parallel.missed_leaves.record(stats.missed_leaves() as f64);
|
|
}
|
|
}
|
|
|
|
/// Parallel state root metrics.
|
|
#[derive(Metrics)]
|
|
#[metrics(scope = "trie_parallel")]
|
|
pub struct ParallelTrieMetrics {
|
|
/// The number of storage roots computed in parallel.
|
|
pub precomputed_storage_roots: Histogram,
|
|
/// The number of leaves for which we did not pre-compute the storage roots.
|
|
pub missed_leaves: Histogram,
|
|
}
|