pub use crate::logging::metrics::*;
#[derive(Debug, Clone)]
pub struct MetricsConfig {
pub enabled: bool,
pub port: u16,
pub bind_address: std::net::IpAddr,
pub update_interval: std::time::Duration,
}
impl Default for MetricsConfig {
fn default() -> Self {
Self {
enabled: false,
port: 9090,
bind_address: std::net::IpAddr::V4(std::net::Ipv4Addr::new(0, 0, 0, 0)),
update_interval: std::time::Duration::from_secs(30),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_metrics_config_default() {
let config = MetricsConfig::default();
assert!(!config.enabled);
assert_eq!(config.port, 9090);
assert_eq!(
config.bind_address,
std::net::IpAddr::V4(std::net::Ipv4Addr::new(0, 0, 0, 0))
);
assert_eq!(config.update_interval, std::time::Duration::from_secs(30));
}
}