Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 017d7bb1bb |
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nanometrics-agent"
|
name = "nanometrics-agent"
|
||||||
version = "0.1.7"
|
version = "0.1.8"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|||||||
@@ -89,15 +89,29 @@ pub fn collect() -> Option<Vec<crate::payload::SmartMetrics>> {
|
|||||||
.flatten()
|
.flatten()
|
||||||
.flatten()
|
.flatten()
|
||||||
.map(|e| e.file_name().into_string().unwrap_or_default())
|
.map(|e| e.file_name().into_string().unwrap_or_default())
|
||||||
.filter(|n| n.starts_with("sd") || n.starts_with("nvme"))
|
.filter_map(|n| {
|
||||||
.map(|n| format!("/dev/{}", n))
|
if n.starts_with("sd") {
|
||||||
|
Some(format!("/dev/{}", n))
|
||||||
|
} else if n.starts_with("nvme") && !n.contains('n') {
|
||||||
|
// /sys/block contient nvme0n1 (namespace) — on utilise le contrôleur nvme0
|
||||||
|
Some(format!("/dev/{}", n))
|
||||||
|
} else if n.starts_with("nvme") && n.contains('n') {
|
||||||
|
// Déduit le contrôleur depuis nvme0n1 → nvme0
|
||||||
|
let ctrl = n.split('n').next()?;
|
||||||
|
Some(format!("/dev/{}", ctrl))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect::<std::collections::HashSet<_>>()
|
||||||
|
.into_iter()
|
||||||
.collect();
|
.collect();
|
||||||
devs.sort();
|
devs.sort();
|
||||||
|
|
||||||
let mut results = Vec::new();
|
let mut results = Vec::new();
|
||||||
for dev in &devs {
|
for dev in &devs {
|
||||||
let Ok(output) = std::process::Command::new("smartctl")
|
let Ok(output) = std::process::Command::new("smartctl")
|
||||||
.args(["-j", dev])
|
.args(["-a", "-j", dev])
|
||||||
.output() else { continue };
|
.output() else { continue };
|
||||||
let json = String::from_utf8_lossy(&output.stdout);
|
let json = String::from_utf8_lossy(&output.stdout);
|
||||||
if let Ok(metrics) = parse_json(&json) {
|
if let Ok(metrics) = parse_json(&json) {
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user