codex_memory/monitoring/
mod.rs1pub 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}