diff options
author | Kelvin Zhang <zhangxp1998@gmail.com> | 2020-01-12 11:35:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-12 11:35:08 -0500 |
commit | b843e18d357a9c14cd77b58aa7995c7b40aee378 (patch) | |
tree | 8712d308c49fd1088cc1cee983ddad8a78f95af5 | |
parent | 21938b64859698f79447119e24dd5ae4b364b6d3 (diff) | |
parent | 358e3f0d54f429581e2d0dde001d9294ae679fcf (diff) |
Merge pull request #77 from imsnif/average
Display weighted average of bandwidth
38 files changed, 263 insertions, 220 deletions
diff --git a/src/display/ui.rs b/src/display/ui.rs index e3464bb..49b6721 100644 --- a/src/display/ui.rs +++ b/src/display/ui.rs @@ -101,8 +101,8 @@ where utilization: Utilization, ip_to_host: HashMap<Ipv4Addr, String>, ) { - self.state = UIState::new(connections_to_procs, utilization); - self.ip_to_host = ip_to_host; + self.state.update(connections_to_procs, utilization); + self.ip_to_host.extend(ip_to_host); } pub fn end(&mut self) { self.terminal.clear().unwrap(); diff --git a/src/display/ui_state.rs b/src/display/ui_state.rs index acbd04f..7a22c6d 100644 --- a/src/display/ui_state.rs +++ b/src/display/ui_state.rs @@ -1,8 +1,10 @@ -use ::std::collections::{BTreeMap, HashMap}; +use ::std::collections::{BTreeMap, HashMap, VecDeque}; use ::std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use crate::network::{Connection, LocalSocket, Utilization}; +static RECALL_LENGTH: usize = 5; + pub trait Bandwidth { fn get_total_bytes_downloaded(&self) -> u128; fn get_total_bytes_uploaded(&self) -> u128; @@ -23,6 +25,20 @@ pub struct ConnectionData { pub interface_name: String, } +impl NetworkData { + pub fn divide_by(&mut self, amount: usize) { + self.total_bytes_downloaded /= amount as u128; + self.total_bytes_uploaded /= amount as u128; + } +} + +impl ConnectionData { + pub fn divide_by(&mut self, amount: usize) { + self.total_bytes_downloaded /= amount as u128; + self.total_bytes_uploaded /= amount as u128; + } +} + impl Bandwidth for ConnectionData { fn get_total_bytes_uploaded(&self) -> u128 { self.total_bytes_uploaded @@ -41,6 +57,11 @@ impl Bandwidth for NetworkData { } } +pub struct UtilizationData { + connections_to_procs: HashMap<LocalSocket, String>, + network_utilization: Utilization, +} + #[derive(Default)] pub struct UIState { pub processes: BTreeMap<String, NetworkData>, @@ -48,6 +69,7 @@ pub struct UIState { pub connections: BTreeMap<Connection, ConnectionData>, pub total_bytes_downloaded: u128, pub total_bytes_uploaded: u128, + utilization_data: VecDeque<UtilizationData>, } impl UIState { @@ -71,48 +93,69 @@ impl UIState { }) } } - pub fn new( + pub fn update( + &mut self, connections_to_procs: HashMap<LocalSocket, String>, network_utilization: Utilization, - ) -> Self { + ) { + self.utilization_data.push_back(UtilizationData { + connections_to_procs, + network_utilization, + }); + if self.utilization_data.len() > RECALL_LENGTH { + self.utilization_data.pop_front(); + } let mut processes: BTreeMap<String, NetworkData> = BTreeMap::new(); let mut remote_addresses: BTreeMap<Ipv4Addr, NetworkData> = BTreeMap::new(); let mut connections: BTreeMap<Connection, ConnectionData> = BTreeMap::new(); let mut total_bytes_downloaded: u128 = 0; let mut total_bytes_uploaded: u128 = 0; - for (connection, connection_info) in network_utilization.connections { - let connection_data = connections.entry(connection).or_default(); + for state in self.utilization_data.iter().rev() { + let connections_to_procs = &state.connections_to_procs; + let network_utilization = &state.network_utilization; + for (connection, connection_info) in &network_utilization.connections { + let connection_data = connections.entry(connection.clone()).or_default(); + let data_for_remote_address = remote_addresses + .entry(connection.remote_socket.ip) + .or_default(); + connection_data.total_bytes_downloaded += connection_info.total_bytes_downloaded; + connection_data.total_bytes_uploaded += connection_info.total_bytes_uploaded; + connection_data.interface_name = connection_info.interface_name.clone(); + data_for_remote_address.total_bytes_downloaded += + connection_info.total_bytes_downloaded; + data_for_remote_address.total_bytes_uploaded += + connection_info.total_bytes_uploaded; + data_for_remote_address.connection_count += 1; + total_bytes_downloaded += connection_info.total_bytes_downloaded; + total_bytes_uploaded += connection_info.total_bytes_uploaded; - if let Some(process_name) = - UIState::get_proc_name(&connections_to_procs, &connection.local_socket) - { - let data_for_process = processes.entry(process_name.clone()).or_default(); - data_for_process.total_bytes_downloaded += connection_info.total_bytes_downloaded; - data_for_process.total_bytes_uploaded += connection_info.total_bytes_uploaded; - data_for_process.connection_count += 1; - connection_data.process_name = process_name.clone(); - } else { - connection_data.process_name = String::from("<UNKNOWN>"); + if let Some(process_name) = + UIState::get_proc_name(&connections_to_procs, &connection.local_socket) + { + let data_for_process = processes.entry(process_name.clone()).or_default(); + data_for_process.total_bytes_downloaded += + connection_info.total_bytes_downloaded; + data_for_process.total_bytes_uploaded += connection_info.total_bytes_uploaded; + data_for_process.connection_count += 1; + connection_data.process_name = process_name.clone(); + } else { + connection_data.process_name = String::from("<UNKNOWN>"); + } } - let data_for_remote_address = remote_addresses - .entry(connection.remote_socket.ip) - .or_default(); - connection_data.total_bytes_downloaded += connection_info.total_bytes_downloaded; - connection_data.total_bytes_uploaded += connection_info.total_bytes_uploaded; - connection_data.interface_name = connection_info.interface_name; - data_for_remote_address.total_bytes_downloaded += - connection_info.total_bytes_downloaded; - data_for_remote_address.total_bytes_uploaded += connection_info.total_bytes_uploaded; - data_for_remote_address.connection_count += 1; - total_bytes_downloaded += connection_info.total_bytes_downloaded; - total_bytes_uploaded += connection_info.total_bytes_uploaded; } - UIState { - processes, - remote_addresses, - connections, - total_bytes_downloaded, - total_bytes_uploaded, + for (_, network_data) in processes.iter_mut() { + network_data.divide_by(self.utilization_data.len()) + } + for (_, network_data) in remote_addresses.iter_mut() { + network_data.divide_by(self.utilization_data.len()) + } + for (_, connection_data) in connections.iter_mut() { + connection_data.divide_by(self.utilization_data.len()) } + self.processes = processes; + self.remote_addresses = remote_addresses; + self.connections = connections; + self.total_bytes_downloaded = total_bytes_downloaded; + self.total_bytes_uploaded = total_bytes_uploaded; } } diff --git a/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap b/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap index c85c6f9..ff5c6df 100644 --- a/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__bi_directional_traffic.snap @@ -2,7 +2,7 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 49/51 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 49/51 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 49/51 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 24/25 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 24/25 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 24/25 connections: 1 diff --git a/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap b/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap index bb165d1..22cb71f 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_connections_from_remote_address.snap @@ -2,8 +2,8 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/95 connections: 2 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/44 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/51 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/95 connections: 2 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/47 connections: 2 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/25 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/47 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap index ce51ab2..d5defc2 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_different_connections.snap @@ -2,9 +2,9 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/44 connections: 1 -process: <TIMESTAMP_REMOVED> "4" up/down Bps: 0/39 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 2.2.2.2:12345 (tcp) up/down Bps: 0/44 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4434 => 2.2.2.2:54321 (tcp) up/down Bps: 0/39 process: "4" -remote_address: <TIMESTAMP_REMOVED> 2.2.2.2 up/down Bps: 0/83 connections: 2 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/22 connections: 1 +process: <TIMESTAMP_REMOVED> "4" up/down Bps: 0/19 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 2.2.2.2:12345 (tcp) up/down Bps: 0/22 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4434 => 2.2.2.2:54321 (tcp) up/down Bps: 0/19 process: "4" +remote_address: <TIMESTAMP_REMOVED> 2.2.2.2 up/down Bps: 0/41 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap index cbbdc0a..91bf8b8 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_packets_of_traffic_from_single_connection.snap @@ -2,7 +2,7 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/91 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/91 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/91 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/45 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/45 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/45 connections: 1 diff --git a/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap b/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap index e359b8c..609bbf5 100644 --- a/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__multiple_processes_with_multiple_connections.snap @@ -2,16 +2,16 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/44 connections: 1 -process: <TIMESTAMP_REMOVED> "2" up/down Bps: 0/42 connections: 1 -process: <TIMESTAMP_REMOVED> "4" up/down Bps: 0/53 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/45 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/44 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4434 => 2.2.2.2:54321 (tcp) up/down Bps: 0/53 process: "4" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/45 process: "5" -connection: <TIMESTAMP_REMOVED> <interface_name>:4432 => 4.4.4.4:1337 (tcp) up/down Bps: 0/42 process: "2" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/44 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 2.2.2.2 up/down Bps: 0/53 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/45 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 4.4.4.4 up/down Bps: 0/42 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/22 connections: 1 +process: <TIMESTAMP_REMOVED> "2" up/down Bps: 0/21 connections: 1 +process: <TIMESTAMP_REMOVED> "4" up/down Bps: 0/26 connections: 1 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/22 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4434 => 2.2.2.2:54321 (tcp) up/down Bps: 0/26 process: "4" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/22 process: "5" +connection: <TIMESTAMP_REMOVED> <interface_name>:4432 => 4.4.4.4:1337 (tcp) up/down Bps: 0/21 process: "2" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/22 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 2.2.2.2 up/down Bps: 0/26 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/22 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 4.4.4.4 up/down Bps: 0/21 connections: 1 diff --git a/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap b/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap index 90291e9..c4b9877 100644 --- a/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap +++ b/src/tests/cases/snapshots/raw_mode__no_resolve_mode.snap @@ -2,16 +2,16 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 57/61 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 34/37 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 57/61 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 34/37 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 57/61 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 34/37 connections: 1 -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 37/36 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 32/46 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 37/36 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 32/46 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 37/36 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 32/46 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 28/30 connections: 1 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 17/18 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 28/30 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 17/18 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 28/30 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 17/18 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 31/32 connections: 2 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 22/27 connections: 2 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 31/32 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 22/27 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 31/32 connections: 2 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 22/27 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap b/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap index f5b78d9..6ed439b 100644 --- a/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__one_ip_packet_of_traffic.snap @@ -2,7 +2,7 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 42/0 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 42/0 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 42/0 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 21/0 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 21/0 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 21/0 connections: 1 diff --git a/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap b/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap index f5b78d9..6ed439b 100644 --- a/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap +++ b/src/tests/cases/snapshots/raw_mode__one_packet_of_traffic.snap @@ -2,7 +2,7 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 42/0 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 42/0 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 42/0 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 21/0 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 21/0 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 21/0 connections: 1 diff --git a/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap b/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap index a6087fe..cf08105 100644 --- a/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap +++ b/src/tests/cases/snapshots/raw_mode__one_process_with_multiple_connections.snap @@ -2,8 +2,8 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/92 connections: 2 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/44 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/48 process: "1" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/92 connections: 2 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/46 connections: 2 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12346 (tcp) up/down Bps: 0/24 process: "1" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/46 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap index 488e50a..b5a75c7 100644 --- a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap +++ b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes.snap @@ -2,16 +2,16 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/44 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/39 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/44 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/39 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/44 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/39 connections: 1 -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/61 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/51 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/61 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/51 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/61 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/51 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/22 connections: 1 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/19 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/22 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/19 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/22 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/19 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 0/35 connections: 2 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 0/30 connections: 2 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 0/35 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 0/30 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 0/35 connections: 2 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 0/30 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap index 90291e9..c4b9877 100644 --- a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap +++ b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_multiple_processes_bi_directional.snap @@ -2,16 +2,16 @@ source: src/tests/cases/raw_mode.rs expression: formatted --- -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 57/61 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 34/37 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 57/61 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 34/37 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 57/61 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 34/37 connections: 1 -process: <TIMESTAMP_REMOVED> "1" up/down Bps: 37/36 connections: 1 -process: <TIMESTAMP_REMOVED> "5" up/down Bps: 32/46 connections: 1 -connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 37/36 process: "1" -connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 32/46 process: "5" -remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 37/36 connections: 1 -remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 32/46 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 28/30 connections: 1 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 17/18 connections: 1 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 28/30 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 17/18 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 28/30 connections: 1 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 17/18 connections: 1 +process: <TIMESTAMP_REMOVED> "1" up/down Bps: 31/32 connections: 2 +process: <TIMESTAMP_REMOVED> "5" up/down Bps: 22/27 connections: 2 +connection: <TIMESTAMP_REMOVED> <interface_name>:443 => 1.1.1.1:12345 (tcp) up/down Bps: 31/32 process: "1" +connection: <TIMESTAMP_REMOVED> <interface_name>:4435 => 3.3.3.3:1337 (tcp) up/down Bps: 22/27 process: "5" +remote_address: <TIMESTAMP_REMOVED> 1.1.1.1 up/down Bps: 31/32 connections: 2 +remote_address: <TIMESTAMP_REMOVED> 3.3.3.3 up/down Bps: 22/27 connections: 2 diff --git a/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap b/src/tests/cases/snapshots/raw_mode__sustained_traffic_from_one_process.snap index 393bd14..b86d4c1 100644 --- a/src/tests/cases/snaps |