use tracing::info;
#[derive(Debug, Clone)]
pub struct TelemetryConfig {
pub enabled: bool,
pub endpoint: String,
pub service_name: String,
pub sample_rate: f64,
}
impl Default for TelemetryConfig {
fn default() -> Self {
Self {
enabled: false,
endpoint: "http://localhost:4317".to_string(),
service_name: "codex-convert-proxy".to_string(),
sample_rate: 1.0,
}
}
}
pub fn init_telemetry(config: &TelemetryConfig) -> anyhow::Result<()> {
if !config.enabled {
info!("Telemetry disabled");
return Ok(());
}
info!(
"Telemetry configured: endpoint={}, service={}",
config.endpoint, config.service_name
);
Ok(())
}
pub fn shutdown_telemetry() {
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_config() {
let config = TelemetryConfig::default();
assert!(!config.enabled);
assert_eq!(config.endpoint, "http://localhost:4317");
assert_eq!(config.service_name, "codex-convert-proxy");
assert_eq!(config.sample_rate, 1.0);
}
}