espresso_node/persistence/
persistence_metrics.rs1use hotshot_types::traits::metrics::{Histogram, Metrics, NoMetrics};
2
3#[derive(Clone, Debug)]
5pub struct PersistenceMetricsValue {
6 pub internal_append_vid_duration: Box<dyn Histogram>,
8 pub internal_append_da_duration: Box<dyn Histogram>,
10 pub internal_append_da2_duration: Box<dyn Histogram>,
12 pub internal_append_quorum2_duration: Box<dyn Histogram>,
14 pub internal_process_decided_events_duration: Box<dyn Histogram>,
18}
19
20impl PersistenceMetricsValue {
21 #[must_use]
23 pub fn new(metrics: &dyn Metrics) -> Self {
24 Self {
25 internal_append_vid_duration: metrics.create_histogram(
26 String::from("internal_append_vid_duration"),
27 Some("seconds".to_string()),
28 ),
29 internal_append_da_duration: metrics.create_histogram(
30 String::from("internal_append_da_duration"),
31 Some("seconds".to_string()),
32 ),
33 internal_append_da2_duration: metrics.create_histogram(
34 String::from("internal_append_da2_duration"),
35 Some("seconds".to_string()),
36 ),
37 internal_append_quorum2_duration: metrics.create_histogram(
38 String::from("internal_append_quorum2_duration"),
39 Some("seconds".to_string()),
40 ),
41 internal_process_decided_events_duration: metrics.create_histogram(
42 String::from("internal_process_decided_events_duration"),
43 Some("seconds".to_string()),
44 ),
45 }
46 }
47}
48
49impl Default for PersistenceMetricsValue {
50 fn default() -> Self {
51 Self::new(&*NoMetrics::boxed())
52 }
53}