minor cleanup

This commit is contained in:
Robin Appelman 2021-03-28 22:04:04 +02:00
commit b607a3d8fb
2 changed files with 23 additions and 27 deletions

View file

@ -5,7 +5,6 @@ use crate::sensors::temperatures;
use crate::sensors::*;
use crate::zfs::pools;
use color_eyre::Result;
use std::collections::HashSet;
use std::fmt::Write;
pub async fn get_metrics() -> Result<String> {
@ -52,7 +51,7 @@ pub async fn get_metrics() -> Result<String> {
.ok();
}
for network in networks {
let network: IOStats = network;
let network: IoStats = network;
if network.bytes_received > 0 || network.bytes_sent > 0 {
writeln!(
&mut result,
@ -69,7 +68,7 @@ pub async fn get_metrics() -> Result<String> {
}
}
for disk in disks {
let disk: IOStats = disk;
let disk: IoStats = disk;
if disk.bytes_received > 0 && disk.bytes_sent > 0 {
writeln!(
&mut result,
@ -86,11 +85,9 @@ pub async fn get_metrics() -> Result<String> {
}
}
let mut found_sizes = HashSet::new();
for disk in disk_usage {
let disk: DiskUsage = disk;
if disk.size > 0 {
if found_sizes.insert((disk.size, disk.free)) {
writeln!(
&mut result,
"disk_size{{host=\"{}\", disk=\"{}\"}} {}",
@ -105,7 +102,6 @@ pub async fn get_metrics() -> Result<String> {
.ok();
}
}
}
for (label, temp) in temperatures {
writeln!(
&mut result,

View file

@ -12,7 +12,7 @@ use std::os::unix::ffi::OsStrExt;
#[derive(Debug, Clone, Hash, Eq, PartialEq, Display)]
#[display(style = "lowercase")]
pub enum TemperatureLabel {
CPU,
Cpu,
}
#[derive(Debug, Clone, Default)]
@ -23,7 +23,7 @@ pub struct Memory {
}
#[derive(Debug, Clone, Default)]
pub struct IOStats {
pub struct IoStats {
pub interface: String,
pub bytes_sent: u64,
pub bytes_received: u64,
@ -49,7 +49,7 @@ pub fn temperatures() -> Result<HashMap<TemperatureLabel, f32>> {
.flat_map(|(name, dir)| {
read_dir(dir.path())
.into_iter()
.flat_map(|dir| dir)
.flatten()
.filter_map(Result::ok)
.filter_map(move |item: DirEntry| {
let file_name = item.file_name();
@ -64,7 +64,7 @@ pub fn temperatures() -> Result<HashMap<TemperatureLabel, f32>> {
})
.filter_map(
|(name, label, item)| match (name.as_slice(), label.as_slice()) {
(b"k10temp\n", b"Tdie\n") => Some((TemperatureLabel::CPU, item)),
(b"k10temp\n", b"Tdie\n") => Some((TemperatureLabel::Cpu, item)),
_ => None,
},
)
@ -112,7 +112,7 @@ pub fn cpu_time() -> Result<u64> {
let line = stat
.lines()
.next()
.ok_or(Report::msg("Invalid /proc/stat"))??;
.ok_or_else(|| Report::msg("Invalid /proc/stat"))??;
let mut parts = line.split_ascii_whitespace();
if let (_cpu, Some(user), _nice, Some(system)) =
(parts.next(), parts.next(), parts.next(), parts.next())
@ -125,7 +125,7 @@ pub fn cpu_time() -> Result<u64> {
}
}
pub fn network_stats() -> Result<impl Iterator<Item = IOStats>> {
pub fn network_stats() -> Result<impl Iterator<Item = IoStats>> {
let stat = BufReader::new(File::open("/proc/net/dev")?);
Ok(stat
.lines()
@ -154,7 +154,7 @@ pub fn network_stats() -> Result<impl Iterator<Item = IOStats>> {
parts.next(),
parts.next(),
) {
Some(IOStats {
Some(IoStats {
interface: interface.trim_end_matches(':').into(),
bytes_sent: bytes_sent.parse().ok()?,
bytes_received: bytes_received.parse().ok()?,
@ -171,7 +171,7 @@ pub fn hostname() -> Result<String> {
.map_err(|_| Report::msg("non utf8 hostname"))
}
pub fn disk_stats() -> Result<impl Iterator<Item = IOStats>> {
pub fn disk_stats() -> Result<impl Iterator<Item = IoStats>> {
static DISK_REGEX: Lazy<Regex> =
Lazy::new(|| Regex::new(r" ([sv]d[a-z]+|nvme\dn\d) ").unwrap());
@ -190,7 +190,7 @@ pub fn disk_stats() -> Result<impl Iterator<Item = IOStats>> {
let _write_count = parts.next();
let _write_merged_count = parts.next();
let write_bytes = parts.next()?.parse().ok()?;
Some(IOStats {
Some(IoStats {
interface: name,
bytes_sent: write_bytes,
bytes_received: read_bytes,