diff --git a/agent/Cargo.toml b/agent/Cargo.toml index b83ea79..5801ea8 100644 --- a/agent/Cargo.toml +++ b/agent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nanometrics-agent" -version = "0.1.10" +version = "0.1.11" edition = "2021" [lib] diff --git a/agent/src/metrics/smart.rs b/agent/src/metrics/smart.rs index b4e205f..a19ec4c 100644 --- a/agent/src/metrics/smart.rs +++ b/agent/src/metrics/smart.rs @@ -91,17 +91,12 @@ pub fn collect() -> Option> { .map(|e| e.file_name().into_string().unwrap_or_default()) .filter_map(|n| { if n.starts_with("sd") { + // /dev/sda, /dev/sdb — block device, groupe disk OK + Some(format!("/dev/{}", n)) + } else if n.starts_with("nvme") && n.contains('n') { + // /dev/nvme0n1 — block device (brw-rw---- root disk), groupe disk OK + // NE PAS utiliser /dev/nvme0 (contrôleur crw------- root root, root only) Some(format!("/dev/{}", n)) - } else if n.starts_with("nvme") { - // /sys/block a nvme0n1 (namespace) → extraire le contrôleur nvme0 - // rfind('n') trouve le dernier 'n' séparateur namespace, ex: nvme0[n]1 - let ctrl = if let Some(pos) = n.rfind('n') - .filter(|&p| p >= 5 && n[p+1..].chars().all(|c| c.is_ascii_digit())) { - &n[..pos] - } else { - &n // déjà un nom de contrôleur (rare) - }; - Some(format!("/dev/{}", ctrl)) } else { None } diff --git a/dist/nanometrics-agent-linux-amd64 b/dist/nanometrics-agent-linux-amd64 index 74eb5c4..f401852 100755 Binary files a/dist/nanometrics-agent-linux-amd64 and b/dist/nanometrics-agent-linux-amd64 differ diff --git a/dist/nanometrics-agent-linux-arm64 b/dist/nanometrics-agent-linux-arm64 index 254715b..f54f745 100755 Binary files a/dist/nanometrics-agent-linux-arm64 and b/dist/nanometrics-agent-linux-arm64 differ