reth_prune/
metrics.rs
1use reth_metrics::{
2 metrics::{Gauge, Histogram},
3 Metrics,
4};
5use reth_prune_types::PruneSegment;
6use std::collections::HashMap;
7
8#[derive(Metrics)]
9#[metrics(scope = "pruner")]
10pub(crate) struct Metrics {
11 pub(crate) duration_seconds: Histogram,
13 #[metric(skip)]
14 prune_segments: HashMap<PruneSegment, PrunerSegmentMetrics>,
15}
16
17impl Metrics {
18 pub(crate) fn get_prune_segment_metrics(
21 &mut self,
22 segment: PruneSegment,
23 ) -> &mut PrunerSegmentMetrics {
24 self.prune_segments.entry(segment).or_insert_with(|| {
25 PrunerSegmentMetrics::new_with_labels(&[("segment", segment.to_string())])
26 })
27 }
28}
29
30#[derive(Metrics)]
31#[metrics(scope = "pruner.segments")]
32pub(crate) struct PrunerSegmentMetrics {
33 pub(crate) duration_seconds: Histogram,
35 pub(crate) highest_pruned_block: Gauge,
37}