aquatic_udp: mio: print num torrents and peers in statistics

This commit is contained in:
Joakim Frostegård 2021-10-31 19:57:30 +01:00
parent 143585792c
commit 03a344eb8e

View file

@ -38,27 +38,47 @@ pub fn gather_and_print_statistics(state: &State, config: &Config) {
bytes_sent_per_second * 8.0 / 1_000_000.0, bytes_sent_per_second * 8.0 / 1_000_000.0,
); );
let mut total_num_torrents_ipv4 = 0usize;
let mut total_num_torrents_ipv6 = 0usize;
let mut total_num_peers_ipv4 = 0usize;
let mut total_num_peers_ipv6 = 0usize;
let mut peers_per_torrent = Histogram::new(); let mut peers_per_torrent = Histogram::new();
{ {
let torrents = &mut state.torrents.lock(); let torrents = &mut state.torrents.lock();
for torrent in torrents.ipv4.values() { for torrent in torrents.ipv4.values() {
let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64; let num_peers = torrent.num_seeders + torrent.num_leechers;
if let Err(err) = peers_per_torrent.increment(num_peers) { if let Err(err) = peers_per_torrent.increment(num_peers as u64) {
::log::error!("error incrementing peers_per_torrent histogram: {}", err) ::log::error!("error incrementing peers_per_torrent histogram: {}", err)
} }
total_num_peers_ipv4 += num_peers;
} }
for torrent in torrents.ipv6.values() { for torrent in torrents.ipv6.values() {
let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64; let num_peers = torrent.num_seeders + torrent.num_leechers;
if let Err(err) = peers_per_torrent.increment(num_peers) { if let Err(err) = peers_per_torrent.increment(num_peers as u64) {
::log::error!("error incrementing peers_per_torrent histogram: {}", err) ::log::error!("error incrementing peers_per_torrent histogram: {}", err)
} }
total_num_peers_ipv6 += num_peers;
} }
total_num_torrents_ipv4 += torrents.ipv4.len();
total_num_torrents_ipv6 += torrents.ipv6.len();
} }
println!(
"ipv4 torrents: {}, peers: {}; ipv6 torrents: {}, peers: {}",
total_num_torrents_ipv4,
total_num_peers_ipv4,
total_num_torrents_ipv6,
total_num_peers_ipv6,
);
if peers_per_torrent.entries() != 0 { if peers_per_torrent.entries() != 0 {
println!( println!(
"peers per torrent: min: {}, p50: {}, p75: {}, p90: {}, p99: {}, p999: {}, max: {}", "peers per torrent: min: {}, p50: {}, p75: {}, p90: {}, p99: {}, p999: {}, max: {}",