hotshot_types/
storage_metrics.rs1use crate::traits::metrics::{Histogram, Metrics, NoMetrics};
2
3#[derive(Clone, Debug)]
5pub struct StorageMetricsValue {
6 pub append_vid_duration: Box<dyn Histogram>,
8 pub append_da_duration: Box<dyn Histogram>,
10 pub append_quorum_duration: Box<dyn Histogram>,
12}
13
14impl StorageMetricsValue {
15 #[must_use]
17 pub fn new(metrics: &dyn Metrics) -> Self {
18 Self {
19 append_vid_duration: metrics.create_histogram(
20 String::from("append_vid_duration"),
21 Some("seconds".to_string()),
22 ),
23 append_da_duration: metrics.create_histogram(
24 String::from("append_da_duration"),
25 Some("seconds".to_string()),
26 ),
27 append_quorum_duration: metrics.create_histogram(
28 String::from("append_quorum_duration"),
29 Some("seconds".to_string()),
30 ),
31 }
32 }
33}
34
35impl Default for StorageMetricsValue {
36 fn default() -> Self {
37 Self::new(&*NoMetrics::boxed())
38 }
39}