Crate pulseengine_mcp_monitoring

Source
Expand description

Monitoring, metrics, and observability for MCP servers

This crate provides comprehensive monitoring capabilities for MCP servers including:

  • Real-time metrics collection and reporting
  • Health checks and system monitoring
  • Performance profiling and optimization insights
  • InfluxDB integration for time-series data
  • Prometheus-compatible metrics export

§Quick Start

use pulseengine_mcp_monitoring::{MetricsCollector, MonitoringConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create monitoring configuration
    let config = MonitoringConfig {
        enabled: true,
        collection_interval_secs: 60,
        performance_monitoring: true,
        health_checks: true,
    };

    // Create metrics collector
    let collector = MetricsCollector::new(config);

    // The collector automatically tracks metrics for requests
    // when integrated with your MCP server

    // Get current metrics
    let metrics = collector.get_current_metrics();
    println!("Total requests: {}", metrics.request_count);
    println!("Total errors: {}", metrics.error_count);
    println!("Uptime: {:?}", metrics.uptime);

    Ok(())
}

§Features

  • Real-time metrics: Live request/response time tracking
  • Health monitoring: System resource and connectivity checks
  • Time-series storage: InfluxDB integration for historical data
  • Prometheus export: Industry-standard metrics format
  • Performance profiling: Identify bottlenecks and optimization opportunities
  • Production ready: Low overhead, highly optimized collection

Re-exports§

pub use collector::MetricsCollector;
pub use config::MonitoringConfig;
pub use metrics::ServerMetrics;
pub use metrics::SystemMetrics;

Modules§

collector
Metrics collector implementation
config
Monitoring configuration
metrics
Server metrics types

Functions§

default_config
Default monitoring configuration