pulseengine_mcp_monitoring/
lib.rs

1//! Monitoring, metrics, and observability for MCP servers
2//!
3//! This crate provides comprehensive monitoring capabilities for MCP servers including:
4//! - Real-time metrics collection and reporting
5//! - Health checks and system monitoring
6//! - Performance profiling and optimization insights
7//! - `InfluxDB` integration for time-series data
8//! - Prometheus-compatible metrics export
9//!
10//! # Quick Start
11//!
12//! ```rust,ignore
13//! use pulseengine_mcp_monitoring::{MetricsCollector, MonitoringConfig};
14//!
15//! #[tokio::main]
16//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
17//!     // Create monitoring configuration
18//!     let config = MonitoringConfig {
19//!         enabled: true,
20//!         collection_interval_secs: 60,
21//!         performance_monitoring: true,
22//!         health_checks: true,
23//!     };
24//!
25//!     // Create metrics collector
26//!     let collector = MetricsCollector::new(config);
27//!
28//!     // The collector automatically tracks metrics for requests
29//!     // when integrated with your MCP server
30//!
31//!     // Get current metrics
32//!     let metrics = collector.get_current_metrics();
33//!     println!("Total requests: {}", metrics.request_count);
34//!     println!("Total errors: {}", metrics.error_count);
35//!     println!("Uptime: {:?}", metrics.uptime);
36//!
37//!     Ok(())
38//! }
39//! ```
40//!
41//! # Features
42//!
43//! - **Real-time metrics**: Live request/response time tracking
44//! - **Health monitoring**: System resource and connectivity checks
45//! - **Time-series storage**: `InfluxDB` integration for historical data
46//! - **Prometheus export**: Industry-standard metrics format
47//! - **Performance profiling**: Identify bottlenecks and optimization opportunities
48//! - **Production ready**: Low overhead, highly optimized collection
49
50pub mod collector;
51pub mod config;
52pub mod metrics;
53
54pub use collector::MetricsCollector;
55pub use config::MonitoringConfig;
56pub use metrics::{ServerMetrics, SystemMetrics};
57
58/// Default monitoring configuration
59pub fn default_config() -> MonitoringConfig {
60    MonitoringConfig::default()
61}
62
63#[cfg(test)]
64mod lib_tests;