Stats route

This commit is contained in:
Jack Mechem 2026-03-26 19:56:57 -07:00
parent 812abbe4f5
commit 6b51817302
4 changed files with 543 additions and 12 deletions

59
src/models.rs Normal file
View file

@ -0,0 +1,59 @@
use serde::Serialize;
use std::collections::HashMap;
#[derive(Serialize)]
pub struct SystemStats {
pub timestamp: String,
pub memory: MemoryStats,
pub cpu: CpuStats,
pub disk: DiskStats,
pub uptime: UptimeStats,
pub network: HashMap<String, NetworkStats>,
pub services: HashMap<String, String>,
pub load_avg: LoadAvgStats,
pub temperature: f32,
}
#[derive(Serialize)]
pub struct MemoryStats {
pub total: u64,
pub used: u64,
pub available: u64,
pub percent: u64,
}
#[derive(Serialize)]
pub struct CpuStats {
pub percent: f32,
pub model: String,
pub cores: usize,
}
#[derive(Serialize)]
pub struct DiskStats {
pub total: u64,
pub used: u64,
pub available: u64,
pub percent: u64,
}
#[derive(Serialize)]
pub struct UptimeStats {
pub seconds: u64,
pub days: u64,
pub hours: u64,
pub minutes: u64,
}
#[derive(Serialize)]
pub struct NetworkStats {
pub rx: u64,
pub tx: u64,
}
#[derive(Serialize)]
pub struct LoadAvgStats {
pub one: f64,
pub five: f64,
pub fifteen: f64,
}