reth_trie_parallel/
proof_task_metrics.rs

1use reth_metrics::{metrics::Histogram, Metrics};
2
3/// Metrics for blinded node fetching for the duration of the proof task manager.
4#[derive(Clone, Debug, Default)]
5pub struct ProofTaskMetrics {
6    /// The actual metrics for blinded nodes.
7    pub task_metrics: ProofTaskTrieMetrics,
8    /// Count of blinded account node requests.
9    pub account_nodes: usize,
10    /// Count of blinded storage node requests.
11    pub storage_nodes: usize,
12}
13
14impl ProofTaskMetrics {
15    /// Record the blinded node counts into the histograms.
16    pub fn record(&self) {
17        self.task_metrics.record_account_nodes(self.account_nodes);
18        self.task_metrics.record_storage_nodes(self.storage_nodes);
19    }
20}
21
22/// Metrics for the proof task.
23#[derive(Clone, Metrics)]
24#[metrics(scope = "trie.proof_task")]
25pub struct ProofTaskTrieMetrics {
26    /// A histogram for the number of blinded account nodes fetched.
27    blinded_account_nodes: Histogram,
28    /// A histogram for the number of blinded storage nodes fetched.
29    blinded_storage_nodes: Histogram,
30}
31
32impl ProofTaskTrieMetrics {
33    /// Record account nodes fetched.
34    pub fn record_account_nodes(&self, count: usize) {
35        self.blinded_account_nodes.record(count as f64);
36    }
37
38    /// Record storage nodes fetched.
39    pub fn record_storage_nodes(&self, count: usize) {
40        self.blinded_storage_nodes.record(count as f64);
41    }
42}