pub fn init_observability(
config: &ObservabilityConfig,
) -> Result<ObservabilityGuards>Expand description
Initialize all observability components
This is the recommended way to set up observability. It initializes:
- Logging (always)
- Metrics (always)
- Tracing (if enabled in config)
Returns guards that must be held for the lifetime of the application.
§Example
use zlayer_observability::{init_observability, ObservabilityConfig};
#[tokio::main]
async fn main() {
let config = ObservabilityConfig::default();
let _guards = init_observability(&config).expect("Failed to init observability");
tracing::info!("Application started");
// guards are dropped when main exits, flushing logs and traces
}§Errors
Returns an error if any observability component fails to initialize.