diff options
author | gennyble <gen@nyble.dev> | 2025-02-16 16:45:30 -0600 |
---|---|---|
committer | gennyble <gen@nyble.dev> | 2025-02-16 16:45:30 -0600 |
commit | 8f882903748f187565a2894106c33cdbf0862998 (patch) | |
tree | a751f7b9c388864d99b270658bfa70df737d0bdb /src/gatherer.rs | |
parent | 0c5986851dee23e09751ae594d8a43a84a0dab61 (diff) | |
download | awake-8f882903748f187565a2894106c33cdbf0862998.tar.gz awake-8f882903748f187565a2894106c33cdbf0862998.zip |
statistics work better :)
Diffstat (limited to 'src/gatherer.rs')
-rw-r--r-- | src/gatherer.rs | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/src/gatherer.rs b/src/gatherer.rs index 0cceea6..b1fa416 100644 --- a/src/gatherer.rs +++ b/src/gatherer.rs @@ -1,7 +1,7 @@ use std::{ fs::File, io::{BufRead, BufReader}, - sync::mpsc::Sender, + sync::{atomic::Ordering, mpsc::Sender}, thread::JoinHandle, time::Duration, }; @@ -78,7 +78,11 @@ pub fn make_mem_graph(state: &AwakeState) { let infos = state.database.get_last_n_host_meminfo(256); let max = infos[0].total_kb; - let usages: Vec<usize> = infos.into_iter().map(|mi| mi.usage()).collect(); + let mut usages: Vec<usize> = infos.into_iter().map(|mi| mi.usage()).collect(); + + // Reversing here because we want latest valeus on on the + // right side, so last in the array + usages.reverse(); let gif = griph::make_1line(0, max, &usages); @@ -90,20 +94,33 @@ pub fn make_net_graph(state: &AwakeState) { tracing::debug!("generating netinfo graph"); let infos = state.database.get_last_n_hostnet(256); - let rx_deltas: Vec<usize> = infos + // 125 is (1000 / 8) so it converst Bytes to kiloBITS + let mut rx_deltas: Vec<usize> = infos .iter() - .map(|ni| ni.rx_bytes_per_sec() as usize / 1000) + .map(|ni| ni.rx_bytes_per_sec() as usize / 124) .collect(); - let tx_deltas: Vec<usize> = infos + let mut tx_deltas: Vec<usize> = infos .iter() - .map(|ni| ni.tx_bytes_per_sec() as usize / 1000) + .map(|ni| ni.tx_bytes_per_sec() as usize / 125) .collect(); - for ahh in &tx_deltas { - tracing::trace!("ahh: {ahh} kbytes"); - } + // Reversing to put latest values on the right side + rx_deltas.reverse(); + tx_deltas.reverse(); + + // Mixing the TX/RX delta so we can pick a range. + let mut mixed = vec![0; 512]; + mixed[..256].copy_from_slice(&rx_deltas); + mixed[256..].copy_from_slice(&tx_deltas); + + mixed.sort(); + let kinda_highest = mixed[511 - 32]; + let high_bound = (kinda_highest as f32 / 256.0).ceil().min(1.0) as usize * 256; + state + .netinfo_upper_bound + .store(high_bound, Ordering::Release); - let gif = griph::make_2line(0, 1000, &rx_deltas, &tx_deltas); + let gif = griph::make_2line(0, high_bound, &tx_deltas, &rx_deltas); let path = state.cache_path.join("current_hostnetinfo.gif"); gif.save(path).unwrap(); |