Skip to main content

backbone_core/config/
monitoring_config.rs

1//! Monitoring configuration
2//!
3//! Defines metrics, tracing, and health check settings.
4
5use serde::{Deserialize, Serialize};
6
7fn default_true() -> bool { true }
8
9/// Monitoring configuration
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct MonitoringConfig {
12    /// Enable monitoring
13    #[serde(default = "default_true")]
14    pub enabled: bool,
15    /// Enable metrics collection
16    #[serde(default = "default_true")]
17    pub metrics_enabled: bool,
18    /// Enable distributed tracing
19    #[serde(default = "default_true")]
20    pub tracing_enabled: bool,
21    /// Enable health checks
22    #[serde(default = "default_true")]
23    pub health_check_enabled: bool,
24    /// Prometheus port
25    #[serde(default)]
26    pub prometheus_port: Option<u16>,
27}
28
29impl Default for MonitoringConfig {
30    fn default() -> Self {
31        Self {
32            enabled: true,
33            metrics_enabled: true,
34            tracing_enabled: true,
35            health_check_enabled: true,
36            prometheus_port: Some(9090),
37        }
38    }
39}