Skip to content

Commit 772101b

Browse files
apollo_config_manager: add update error metric
1 parent dfcf825 commit 772101b

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

crates/apollo_config_manager/src/config_manager_runner.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ use notify::{Config as NotifyConfig, EventKind, RecommendedWatcher, RecursiveMod
1616
use serde_json::Value;
1717
use tokio::sync::mpsc;
1818
use tokio::time::{interval, Duration as TokioDuration, Interval};
19+
use tracing::{error, info};
20+
21+
use crate::metrics::{register_metrics, CONFIG_MANAGER_UPDATE_ERRORS};
1922

2023
const FS_EVENT_CHANNEL_CAPACITY: usize = 16;
21-
use tracing::{error, info};
2224

2325
#[cfg(test)]
2426
#[path = "config_manager_runner_tests.rs"]
@@ -38,6 +40,8 @@ impl ComponentStarter for ConfigManagerRunner {
3840

3941
info!("ConfigManagerRunner: starting filesystem watcher");
4042

43+
register_metrics();
44+
4145
if self.config_manager_config.enable_config_updates {
4246
let update_interval = interval(TokioDuration::from_secs_f64(
4347
self.config_manager_config.config_update_interval_secs,
@@ -102,7 +106,9 @@ impl ConfigManagerRunner {
102106
}
103107
_ => {}
104108
},
105-
Err(e) => error!("ConfigManagerRunner: watcher error: {e}"),
109+
Err(e) => {
110+
error!("ConfigManagerRunner: watcher error: {e}");
111+
}
106112
}
107113
}
108114
// Periodic tick
@@ -119,6 +125,7 @@ impl ConfigManagerRunner {
119125
&mut self,
120126
) -> Result<NodeDynamicConfig, Box<dyn std::error::Error + Send + Sync>> {
121127
let config = load_and_validate_config(self.cli_args.clone(), false).map_err(|e| {
128+
CONFIG_MANAGER_UPDATE_ERRORS.increment(1);
122129
error!("ConfigManagerRunner: failed to update config: {e}");
123130
e
124131
})?;

crates/apollo_config_manager/src/metrics.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,21 @@ use apollo_infra::metrics::{
66
RemoteClientMetrics,
77
RemoteServerMetrics,
88
};
9-
use apollo_metrics::define_infra_metrics;
9+
use apollo_metrics::{define_infra_metrics, define_metrics};
1010

1111
define_infra_metrics!(config_manager);
12+
13+
define_metrics!(
14+
ConfigManager => {
15+
MetricCounter {
16+
CONFIG_MANAGER_UPDATE_ERRORS,
17+
"config_manager_update_errors",
18+
"Number of config manager update errors (load/validate or set dynamic config)",
19+
init = 0
20+
},
21+
},
22+
);
23+
24+
pub(crate) fn register_metrics() {
25+
CONFIG_MANAGER_UPDATE_ERRORS.register();
26+
}

crates/apollo_metrics/src/metrics.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ pub enum MetricScope {
2626
Blockifier,
2727
ClassManager,
2828
Committer,
29+
ConfigManager,
2930
Consensus,
3031
ConsensusManager,
3132
ConsensusOrchestrator,

0 commit comments

Comments
 (0)