Skip to main content

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}