Skip to main content

reth_node_metrics/
storage.rs

1//! This exposes reth's storage settings over prometheus.
2
3use metrics::gauge;
4
5/// Contains storage settings information for the application.
6#[derive(Debug, Clone)]
7pub struct StorageSettingsInfo {
8    /// Whether this node uses v2 storage layout.
9    pub storage_v2: bool,
10    /// The high-level pruning mode.
11    pub pruning_mode: &'static str,
12    /// The effective pruning configuration as JSON.
13    pub prune_config: String,
14}
15
16impl StorageSettingsInfo {
17    /// This exposes reth's storage settings over prometheus.
18    pub fn register_storage_settings_metrics(&self) {
19        let storage_v2 = if self.storage_v2 { "true" } else { "false" };
20        let labels: [(&str, String); 3] = [
21            ("storage_v2", storage_v2.to_string()),
22            ("pruning_mode", self.pruning_mode.to_string()),
23            ("prune_config", self.prune_config.clone()),
24        ];
25
26        let gauge = gauge!("storage_settings", &labels);
27        gauge.set(1);
28    }
29}