create cpu breakdown

This commit is contained in:
csehviktor
2025-07-03 06:12:03 +02:00
parent 52ef3dcb6b
commit 18f56ad5cc
3 changed files with 108 additions and 9 deletions

View File

@@ -1,10 +1,13 @@
use common::metrics::{Disk, Memory, Metrics, Network, SystemInfo, CPU};
use sysinfo::{Disks, Networks, System};
use crate::cpu::CpuStatReader;
pub struct Collector {
sys: System,
disks: Disks,
networks: Networks,
cpu_reader: CpuStatReader,
}
impl Collector {
@@ -13,6 +16,7 @@ impl Collector {
sys: System::new_all(),
disks: Disks::new_with_refreshed_list(),
networks: Networks::new_with_refreshed_list(),
cpu_reader: CpuStatReader::new(),
}
}
@@ -46,16 +50,11 @@ impl Collector {
}
}
fn collect_cpu(&self) -> CPU {
let cpus = self.sys.cpus();
let threads = cpus.len();
let usage = self.sys.global_cpu_usage();
fn collect_cpu(&mut self) -> CPU {
CPU {
brand: String::from(cpus[0].brand()),
usage,
threads,
usage: self.sys.global_cpu_usage(),
threads: self.sys.cpus().len(),
breakdown: self.cpu_reader.read_global_cpu_stats().unwrap_or_default()
}
}