mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 18:24:08 +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(),
|
available: system.available_memory(),
|
||||||
free: system.free_memory(),
|
free: system.free_memory(),
|
||||||
};
|
};
|
||||||
memory.write(&mut result, &hostname);
|
memory.write(&mut result, hostname);
|
||||||
for disk in system.disks() {
|
for disk in system.disks() {
|
||||||
let space = DiskUsage {
|
let space = DiskUsage {
|
||||||
name: disk.name().to_string_lossy().into(),
|
name: disk.name().to_string_lossy().into(),
|
||||||
size: disk.total_space(),
|
size: disk.total_space(),
|
||||||
free: disk.available_space(),
|
free: disk.available_space(),
|
||||||
};
|
};
|
||||||
space.write(&mut result, &hostname);
|
space.write(&mut result, hostname);
|
||||||
}
|
}
|
||||||
for (interface, net) in system.networks() {
|
for (interface, net) in system.networks() {
|
||||||
let usage = NetStats {
|
let usage = NetStats {
|
||||||
|
|
@ -75,17 +75,17 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
||||||
bytes_received: net.total_received(),
|
bytes_received: net.total_received(),
|
||||||
bytes_sent: net.total_transmitted(),
|
bytes_sent: net.total_transmitted(),
|
||||||
};
|
};
|
||||||
usage.write(&mut result, &hostname);
|
usage.write(&mut result, hostname);
|
||||||
}
|
}
|
||||||
let cpu = sensors.cpu.lock().unwrap().read()?;
|
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_used = WMI.with(|wmi| wmi.gpu_mem())?;
|
||||||
let gpu_mem = GpuMemory {
|
let gpu_mem = GpuMemory {
|
||||||
total: sensors.gpu_mem_total,
|
total: sensors.gpu_mem_total,
|
||||||
free: sensors.gpu_mem_total - gpu_mem_used,
|
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())?;
|
let gpu_engines = WMI.with(|wmi| wmi.gpu_usage())?;
|
||||||
for (name, usage) in gpu_engines.into_iter() {
|
for (name, usage) in gpu_engines.into_iter() {
|
||||||
|
|
@ -93,14 +93,15 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
||||||
system: Cow::Owned(name),
|
system: Cow::Owned(name),
|
||||||
usage,
|
usage,
|
||||||
};
|
};
|
||||||
gpu_usage.write(&mut result, &hostname);
|
gpu_usage.write(&mut result, hostname);
|
||||||
}
|
}
|
||||||
if let Some(disk_usage) = WMI.with(|wmi| wmi.disk_usage())? {
|
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())?;
|
let hwmon_data = WMI.with(|wmi| wmi.hwmon())?;
|
||||||
hwmon_data.temperature.write(&mut result, &hostname);
|
hwmon_data.temperature.write(&mut result, hostname);
|
||||||
hwmon_data.power.write(&mut result, &hostname);
|
hwmon_data.cpu_power.write(&mut result, hostname);
|
||||||
|
hwmon_data.gpu_power.write(&mut result, hostname);
|
||||||
|
|
||||||
Ok(result)
|
Ok(result)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::data::{DiskStats, PowerUsage, Temperatures};
|
use crate::data::{CpuPowerUsage, DiskStats, GpuPowerUsage, Temperatures};
|
||||||
use crate::Result;
|
use crate::Result;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
@ -53,7 +53,7 @@ impl WmiSensor {
|
||||||
let mut data = HashMap::default();
|
let mut data = HashMap::default();
|
||||||
|
|
||||||
for result in results {
|
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();
|
let entry = data.entry(eng_type.to_string()).or_default();
|
||||||
*entry += result.usage;
|
*entry += result.usage;
|
||||||
}
|
}
|
||||||
|
|
@ -105,7 +105,8 @@ impl WmiSensor {
|
||||||
};
|
};
|
||||||
Ok(HwMonData {
|
Ok(HwMonData {
|
||||||
temperature,
|
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 {
|
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
|
let total: f32 = sensors
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(|sensor| filter(sensor).then_some(sensor.value))
|
.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 struct HwMonData {
|
||||||
pub temperature: Temperatures,
|
pub temperature: Temperatures,
|
||||||
pub power: PowerUsage,
|
pub cpu_power: CpuPowerUsage,
|
||||||
|
pub gpu_power: GpuPowerUsage,
|
||||||
}
|
}
|
||||||
|
|
||||||
static CPU_POWER_UJ: AtomicU64 = AtomicU64::new(0);
|
static CPU_POWER_UJ: AtomicU64 = AtomicU64::new(0);
|
||||||
|
|
@ -175,10 +177,15 @@ pub fn update_power() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn power() -> PowerUsage {
|
pub fn cpu_power() -> CpuPowerUsage {
|
||||||
PowerUsage {
|
CpuPowerUsage {
|
||||||
cpu_uj: CPU_POWER_UJ.load(Ordering::SeqCst),
|
cpu_uj: CPU_POWER_UJ.load(Ordering::SeqCst),
|
||||||
cpu_packages_uj: Vec::default(),
|
cpu_packages_uj: Vec::default(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn gpu_power() -> GpuPowerUsage {
|
||||||
|
GpuPowerUsage {
|
||||||
gpu_uj: GPU_POWER_UJ.load(Ordering::SeqCst),
|
gpu_uj: GPU_POWER_UJ.load(Ordering::SeqCst),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue