reth_stages_api/metrics/
sync_metrics.rs1use crate::StageId;
2use reth_metrics::{metrics::Gauge, Metrics};
3use std::collections::HashMap;
4
5#[derive(Debug, Default)]
6pub(crate) struct SyncMetrics {
7 pub(crate) stages: HashMap<StageId, StageMetrics>,
9}
10
11impl SyncMetrics {
12 pub(crate) fn get_stage_metrics(&mut self, stage_id: StageId) -> &mut StageMetrics {
15 self.stages
16 .entry(stage_id)
17 .or_insert_with(|| StageMetrics::new_with_labels(&[("stage", stage_id.to_string())]))
18 }
19}
20
21#[derive(Metrics)]
22#[metrics(scope = "sync")]
23pub(crate) struct StageMetrics {
24 pub(crate) checkpoint: Gauge,
26 pub(crate) entities_processed: Gauge,
28 pub(crate) entities_total: Gauge,
30 pub(crate) total_elapsed: Gauge,
32}