guts_node/observability/mod.rs
1//! # Observability Module
2//!
3//! Production-grade observability for the Guts node including:
4//!
5//! - **Structured Logging**: JSON-formatted logs with request IDs and context
6//! - **Prometheus Metrics**: HTTP, P2P, storage, and business metrics
7//! - **Request Tracing**: Request ID propagation across all operations
8//!
9//! ## Usage
10//!
11//! ```rust,ignore
12//! use axum::Router;
13//! use guts_node::observability::{init_logging, MetricsState, request_id_layer};
14//!
15//! // Initialize logging
16//! init_logging("info", true);
17//!
18//! // Create metrics state
19//! let metrics = MetricsState::new();
20//!
21//! // Add request ID layer to router
22//! let app: Router<()> = Router::new()
23//! .layer(request_id_layer());
24//! ```
25
26mod logging;
27mod metrics;
28pub mod middleware;
29
30pub use logging::{init_logging, LogFormat};
31pub use metrics::MetricsState;
32pub use middleware::{metrics_layer, request_id_layer, MiddlewareLayer, REQUEST_ID_HEADER};
33
34/// Re-export commonly used types
35pub use uuid::Uuid;