pub mod config;
pub mod container_spans;
pub mod error;
pub mod log_reader;
pub mod logging;
pub mod logs;
pub mod metrics;
pub mod propagation;
pub mod tracing_otel;
pub use config::*;
pub use container_spans::*;
pub use error::{ObservabilityError, Result};
pub use logging::{init_logging, LogGuard};
pub use metrics::{init_metrics, metrics, HealthStatus, ZLayerMetrics};
pub use tracing_otel::{create_otel_layer, init_tracing, TracingGuard};
pub struct ObservabilityGuards {
pub log_guard: LogGuard,
pub tracing_guard: TracingGuard,
}
pub fn init_observability(config: &ObservabilityConfig) -> Result<ObservabilityGuards> {
let log_guard = init_logging(&config.logging)?;
let _ = init_metrics(&config.metrics)?;
let tracing_guard = init_tracing(&config.tracing)?;
tracing::info!("Observability initialized");
Ok(ObservabilityGuards {
log_guard,
tracing_guard,
})
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_config() {
let config = ObservabilityConfig::default();
assert!(!config.tracing.enabled);
assert!(config.metrics.enabled);
}
}