pulseengine_mcp_monitoring/
metrics.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(default)]
8pub struct ServerMetrics {
9 pub requests_total: u64,
10 pub requests_per_second: f64,
11 pub average_response_time_ms: f64,
12 pub error_rate: f64,
13 pub active_connections: u64,
14 pub memory_usage_bytes: u64,
15 pub uptime_seconds: u64,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct LoadAverage {
21 pub one: f64,
22 pub five: f64,
23 pub fifteen: f64,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct SystemMetrics {
29 pub cpu_usage_percent: f32,
30 pub memory_total_bytes: u64,
31 pub memory_used_bytes: u64,
32 pub memory_available_bytes: u64,
33 pub swap_total_bytes: u64,
34 pub swap_used_bytes: u64,
35 pub load_average: LoadAverage,
36 pub process_count: u64,
37}
38
39impl Default for ServerMetrics {
40 fn default() -> Self {
41 Self {
42 requests_total: 0,
43 requests_per_second: 0.0,
44 average_response_time_ms: 0.0,
45 error_rate: 0.0,
46 active_connections: 0,
47 memory_usage_bytes: 0,
48 uptime_seconds: 0,
49 }
50 }
51}
52
53#[cfg(test)]
54#[path = "metrics_tests.rs"]
55mod metrics_tests;