codex_memory/monitoring/
mod.rs

1pub mod alerts;
2pub mod connection_monitor;
3pub mod health;
4pub mod metrics;
5pub mod profiling;
6pub mod repository;
7
8pub use alerts::*;
9pub use connection_monitor::*;
10pub use health::*;
11pub use metrics::*;
12pub use profiling::*;
13pub use repository::*;
14
15use chrono::{DateTime, Utc};
16use serde::{Deserialize, Serialize};
17use std::collections::HashMap;
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct SystemHealth {
21    pub status: HealthStatus,
22    pub timestamp: DateTime<Utc>,
23    pub components: HashMap<String, ComponentHealth>,
24    pub uptime_seconds: u64,
25    pub memory_usage_bytes: u64,
26    pub cpu_usage_percent: f64,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
30pub enum HealthStatus {
31    Healthy,
32    Degraded,
33    Unhealthy,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct ComponentHealth {
38    pub status: HealthStatus,
39    pub message: Option<String>,
40    pub last_checked: DateTime<Utc>,
41    pub response_time_ms: Option<u64>,
42    pub error_count: u64,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct PerformanceMetrics {
47    pub request_count: u64,
48    pub error_count: u64,
49    pub avg_response_time_ms: f64,
50    pub p95_response_time_ms: f64,
51    pub p99_response_time_ms: f64,
52    pub memory_tier_distribution: HashMap<String, u64>,
53    pub active_connections: u32,
54    pub query_performance: QueryPerformanceMetrics,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct QueryPerformanceMetrics {
59    pub slow_queries: u64,
60    pub avg_query_time_ms: f64,
61    pub connection_pool_utilization: f64,
62    pub index_hit_ratio: f64,
63    pub cache_hit_ratio: f64,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
67pub struct AlertRule {
68    pub name: String,
69    pub condition: AlertCondition,
70    pub threshold: f64,
71    pub severity: AlertSeverity,
72    pub enabled: bool,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
76pub enum AlertCondition {
77    MemoryPressure,
78    HighErrorRate,
79    SlowResponse,
80    ConnectionPoolSaturation,
81    MigrationFailures,
82    DiskUsage,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
86pub enum AlertSeverity {
87    Critical,
88    Warning,
89    Info,
90}