diem_config/config/
metrics_config.rs1use serde::{Deserialize, Serialize};
9use std::path::PathBuf;
10
11#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
12#[serde(default, deny_unknown_fields)]
13pub struct MetricsConfig {
14 pub collection_interval_ms: u64,
15 pub dir: PathBuf,
16 pub enabled: bool,
17 #[serde(skip)]
18 data_dir: PathBuf,
19}
20
21impl Default for MetricsConfig {
22 fn default() -> MetricsConfig {
23 MetricsConfig {
24 collection_interval_ms: 1000,
25 data_dir: PathBuf::from("/opt/diem/data"),
26 enabled: false,
27 dir: PathBuf::from("metrics"),
28 }
29 }
30}
31
32impl MetricsConfig {
33 pub fn dir(&self) -> PathBuf {
34 if self.dir.is_relative() {
35 self.data_dir.join(&self.dir)
36 } else {
37 self.dir.clone()
38 }
39 }
40
41 pub fn set_data_dir(&mut self, data_dir: PathBuf) {
42 self.data_dir = data_dir;
43 }
44}