use sysinfo::System;
#[derive(Debug, Default, Clone)]
pub struct ProcessMetrics {
pub cpu_usage: f32,
pub memory_usage: u64,
pub disk_usage: u64,
}
impl ProcessMetrics {
pub fn collect() -> Option<Self> {
let mut sys = System::new_all();
sys.refresh_all();
sysinfo::get_current_pid().ok().and_then(|pid| {
sys.process(pid).map(|process| ProcessMetrics {
cpu_usage: process.cpu_usage(),
memory_usage: process.memory(),
disk_usage: process.disk_usage().total_written_bytes,
})
})
}
}