hashiverse_server_lib/server/stats/
system_stats.rs1use sysinfo::{Disks, System};
2
3pub fn system_stats_subtree() -> serde_json::Value {
11 let mut system = System::new();
12 system.refresh_memory();
13 let disks = Disks::new_with_refreshed_list();
14 let load = System::load_average();
15
16 let memory_total_bytes = system.total_memory();
17 let memory_free_bytes = system.available_memory();
18
19 let mut disk_total_bytes: u64 = 0;
20 let mut disk_free_bytes: u64 = 0;
21 for disk in disks.list() {
22 disk_total_bytes = disk_total_bytes.saturating_add(disk.total_space());
23 disk_free_bytes = disk_free_bytes.saturating_add(disk.available_space());
24 }
25
26 serde_json::json!({
27 "memory_total_bytes": memory_total_bytes,
28 "memory_free_bytes": memory_free_bytes,
29 "disk_total_bytes": disk_total_bytes,
30 "disk_free_bytes": disk_free_bytes,
31 "load_1m": load.one,
32 "load_5m": load.five,
33 "load_15m": load.fifteen,
34 })
35}