yggdrasil/models/system.rs
1//! 主机指标快照模型。
2//!
3//! `SystemSnapshot` 两端都编译(被 `api::database::system_status` 的
4//! `ServerStatus::host` 字段引用,经 serde 在服务端与客户端之间共享序列化);
5//! 真正的后台采样任务 / 全局 `RwLock` / `read_snapshot` 在
6//! [`crate::tasks::sysinfo_sampler`](server-only)。
7
8use serde::{Deserialize, Serialize};
9
10/// 主机指标快照(由后台采样任务周期更新)。
11#[derive(Clone, Default, Serialize, Deserialize, Debug)]
12pub struct SystemSnapshot {
13 /// 总体 CPU 使用率(百分比)。
14 pub cpu_usage: f32,
15 /// 系统 1 分钟平均负载。
16 pub load_avg_1: f64,
17 /// 总物理内存(字节)。
18 pub total_memory: u64,
19 /// 已用物理内存(字节)。
20 pub used_memory: u64,
21 /// 主磁盘总空间(字节,取根分区或最大盘)。
22 pub disk_total: u64,
23 /// 主磁盘可用空间(字节)。
24 pub disk_available: u64,
25 /// 操作系统版本(如 "macOS 15.5")。
26 pub os_name: String,
27 /// 内核版本。
28 pub kernel_version: String,
29 /// 系统启动后秒数。
30 pub uptime_secs: u64,
31}