mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 10:14:09 +02:00
win fixes
This commit is contained in:
parent
224bf80588
commit
898737eea8
2 changed files with 24 additions and 16 deletions
|
|
@ -60,14 +60,14 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
|||
available: system.available_memory(),
|
||||
free: system.free_memory(),
|
||||
};
|
||||
memory.write(&mut result, &hostname);
|
||||
memory.write(&mut result, hostname);
|
||||
for disk in system.disks() {
|
||||
let space = DiskUsage {
|
||||
name: disk.name().to_string_lossy().into(),
|
||||
size: disk.total_space(),
|
||||
free: disk.available_space(),
|
||||
};
|
||||
space.write(&mut result, &hostname);
|
||||
space.write(&mut result, hostname);
|
||||
}
|
||||
for (interface, net) in system.networks() {
|
||||
let usage = NetStats {
|
||||
|
|
@ -75,17 +75,17 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
|||
bytes_received: net.total_received(),
|
||||
bytes_sent: net.total_transmitted(),
|
||||
};
|
||||
usage.write(&mut result, &hostname);
|
||||
usage.write(&mut result, hostname);
|
||||
}
|
||||
let cpu = sensors.cpu.lock().unwrap().read()?;
|
||||
cpu.write(&mut result, &hostname);
|
||||
cpu.write(&mut result, hostname);
|
||||
|
||||
let gpu_mem_used = WMI.with(|wmi| wmi.gpu_mem())?;
|
||||
let gpu_mem = GpuMemory {
|
||||
total: sensors.gpu_mem_total,
|
||||
free: sensors.gpu_mem_total - gpu_mem_used,
|
||||
};
|
||||
gpu_mem.write(&mut result, &hostname);
|
||||
gpu_mem.write(&mut result, hostname);
|
||||
|
||||
let gpu_engines = WMI.with(|wmi| wmi.gpu_usage())?;
|
||||
for (name, usage) in gpu_engines.into_iter() {
|
||||
|
|
@ -93,14 +93,15 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
|||
system: Cow::Owned(name),
|
||||
usage,
|
||||
};
|
||||
gpu_usage.write(&mut result, &hostname);
|
||||
gpu_usage.write(&mut result, hostname);
|
||||
}
|
||||
if let Some(disk_usage) = WMI.with(|wmi| wmi.disk_usage())? {
|
||||
disk_usage.write(&mut result, &hostname);
|
||||
disk_usage.write(&mut result, hostname);
|
||||
}
|
||||
let hwmon_data = WMI.with(|wmi| wmi.hwmon())?;
|
||||
hwmon_data.temperature.write(&mut result, &hostname);
|
||||
hwmon_data.power.write(&mut result, &hostname);
|
||||
hwmon_data.temperature.write(&mut result, hostname);
|
||||
hwmon_data.cpu_power.write(&mut result, hostname);
|
||||
hwmon_data.gpu_power.write(&mut result, hostname);
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use crate::data::{DiskStats, PowerUsage, Temperatures};
|
||||
use crate::data::{CpuPowerUsage, DiskStats, GpuPowerUsage, Temperatures};
|
||||
use crate::Result;
|
||||
use serde::Deserialize;
|
||||
use std::collections::HashMap;
|
||||
|
|
@ -53,7 +53,7 @@ impl WmiSensor {
|
|||
let mut data = HashMap::default();
|
||||
|
||||
for result in results {
|
||||
if let Some(eng_type) = result.name.split("_engtype_").skip(1).next() {
|
||||
if let Some(eng_type) = result.name.split("_engtype_").nth(1) {
|
||||
let entry = data.entry(eng_type.to_string()).or_default();
|
||||
*entry += result.usage;
|
||||
}
|
||||
|
|
@ -105,7 +105,8 @@ impl WmiSensor {
|
|||
};
|
||||
Ok(HwMonData {
|
||||
temperature,
|
||||
power: power(),
|
||||
cpu_power: cpu_power(),
|
||||
gpu_power: gpu_power(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -121,7 +122,7 @@ struct Sensor {
|
|||
}
|
||||
|
||||
fn avg_sensors(sensors: &[Sensor], filter: impl Fn(&Sensor) -> bool) -> f32 {
|
||||
let count = sensors.iter().filter(|sensor| filter(*sensor)).count();
|
||||
let count = sensors.iter().filter(|sensor| filter(sensor)).count();
|
||||
let total: f32 = sensors
|
||||
.iter()
|
||||
.filter_map(|sensor| filter(sensor).then_some(sensor.value))
|
||||
|
|
@ -131,7 +132,8 @@ fn avg_sensors(sensors: &[Sensor], filter: impl Fn(&Sensor) -> bool) -> f32 {
|
|||
|
||||
pub struct HwMonData {
|
||||
pub temperature: Temperatures,
|
||||
pub power: PowerUsage,
|
||||
pub cpu_power: CpuPowerUsage,
|
||||
pub gpu_power: GpuPowerUsage,
|
||||
}
|
||||
|
||||
static CPU_POWER_UJ: AtomicU64 = AtomicU64::new(0);
|
||||
|
|
@ -175,10 +177,15 @@ pub fn update_power() {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn power() -> PowerUsage {
|
||||
PowerUsage {
|
||||
pub fn cpu_power() -> CpuPowerUsage {
|
||||
CpuPowerUsage {
|
||||
cpu_uj: CPU_POWER_UJ.load(Ordering::SeqCst),
|
||||
cpu_packages_uj: Vec::default(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn gpu_power() -> GpuPowerUsage {
|
||||
GpuPowerUsage {
|
||||
gpu_uj: GPU_POWER_UJ.load(Ordering::SeqCst),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue