mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 18:24:08 +02:00
dedup disks by size
This commit is contained in:
parent
d798e23e48
commit
9c4a767c40
1 changed files with 17 additions and 13 deletions
30
src/main.rs
30
src/main.rs
|
|
@ -6,7 +6,7 @@ use crate::zfs::ZFS;
|
|||
use color_eyre::{Report, Result};
|
||||
use futures_util::stream::StreamExt;
|
||||
use futures_util::{pin_mut, try_join};
|
||||
use std::collections::HashMap;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::fmt::Write;
|
||||
use warp::reject::Reject;
|
||||
use warp::{Filter, Rejection};
|
||||
|
|
@ -114,21 +114,25 @@ async fn get_metrics(heim: Heim, zfs: ZFS) -> Result<String, ReportRejection> {
|
|||
.ok();
|
||||
}
|
||||
}
|
||||
|
||||
let mut found_sizes = HashSet::new();
|
||||
while let Some(disk) = disk_usage.next().await {
|
||||
let disk: DiskUsage = disk;
|
||||
if disk.size > 0 {
|
||||
writeln!(
|
||||
&mut result,
|
||||
"disk_size{{host=\"{}\", disk=\"{}\"}} {}",
|
||||
hostname, disk.name, disk.size
|
||||
)
|
||||
.ok();
|
||||
writeln!(
|
||||
&mut result,
|
||||
"disk_free{{host=\"{}\", disk=\"{}\"}} {}",
|
||||
hostname, disk.name, disk.free
|
||||
)
|
||||
.ok();
|
||||
if found_sizes.insert((disk.size, disk.free)) {
|
||||
writeln!(
|
||||
&mut result,
|
||||
"disk_size{{host=\"{}\", disk=\"{}\"}} {}",
|
||||
hostname, disk.name, disk.size
|
||||
)
|
||||
.ok();
|
||||
writeln!(
|
||||
&mut result,
|
||||
"disk_free{{host=\"{}\", disk=\"{}\"}} {}",
|
||||
hostname, disk.name, disk.free
|
||||
)
|
||||
.ok();
|
||||
}
|
||||
}
|
||||
}
|
||||
for (label, temp) in temperatures {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue