From 3592f741f29f77772c11aadf1db94722175fb04d Mon Sep 17 00:00:00 2001 From: weriomat Date: Wed, 29 Jul 2026 00:58:35 +0200 Subject: [PATCH] Add parsing of distances between numa nodes --- src/collectors/cpu.rs | 8 ++++++++ src/model/cpu.rs | 1 + 2 files changed, 9 insertions(+) diff --git a/src/collectors/cpu.rs b/src/collectors/cpu.rs index b5c143f..111120b 100644 --- a/src/collectors/cpu.rs +++ b/src/collectors/cpu.rs @@ -605,10 +605,18 @@ fn gather_numa_nodes() -> Vec { // Read NUMA node memory from its meminfo file. let memory_bytes = parse_numa_meminfo(&dir.join("meminfo")); + // Each field corresponds the distance to the numa node with the appropriate index + let distances = sysfs::read_string_optional(&dir.join("distance")) + .unwrap_or_default() + .split_whitespace() + .filter_map(|s| s.parse::().ok()) + .collect::>(); + nodes.push(NumaNode { node_id, cpu_list, memory_bytes, + distances, }); } diff --git a/src/model/cpu.rs b/src/model/cpu.rs index 539a5df..079a8c7 100644 --- a/src/model/cpu.rs +++ b/src/model/cpu.rs @@ -56,6 +56,7 @@ pub struct NumaNode { pub node_id: u32, pub cpu_list: String, pub memory_bytes: Option, + pub distances: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)]