From 8f0cec26428a1056a74336ec73bf8a14b6163938 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Sun, 24 May 2020 17:28:05 +0200 Subject: [PATCH] src/bin/proxmox-backup-proxy.rs: gather netin/netout stats --- src/bin/proxmox-backup-proxy.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index 6249366a..1895479f 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -601,7 +601,8 @@ async fn run_stat_generator() { } async fn generate_host_stats() { - use proxmox::sys::linux::procfs::{read_meminfo, read_proc_stat}; + use proxmox::sys::linux::procfs::{ + read_meminfo, read_proc_stat, read_proc_net_dev}; use proxmox_backup::rrd; match read_proc_stat() { @@ -627,4 +628,27 @@ async fn generate_host_stats() { eprintln!("read_meminfo failed - {}", err); } } + + match read_proc_net_dev() { + Ok(netdev) => { + use proxmox_backup::config::network::is_physical_nic; + let mut netin = 0; + let mut netout = 0; + for item in netdev { + if !is_physical_nic(&item.device) { continue; } + netin += item.receive; + netout += item.send; + } + if let Err(err) = rrd::update_value("host/netin", netin as f64, rrd::DST::Derive) { + eprintln!("rrd::update_value 'host/netin' failed - {}", err); + } + if let Err(err) = rrd::update_value("host/netout", netout as f64, rrd::DST::Derive) { + eprintln!("rrd::update_value 'host/netout' failed - {}", err); + } + } + Err(err) => { + eprintln!("read_prox_net_dev failed - {}", err); + } + } + }