Skip to content

Commit 771e5df

Browse files
committed
add packet statistics to stats
1 parent 984deb1 commit 771e5df

3 files changed

Lines changed: 37 additions & 23 deletions

File tree

application/src/server/executor/docker.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,9 @@ impl DockerProcessHandle {
855855
&& let Some(net) = networks.values().next()
856856
{
857857
usage.network.rx_bytes = net.rx_bytes.unwrap_or(0);
858+
usage.network.rx_packets = net.rx_packets.unwrap_or(0);
858859
usage.network.tx_bytes = net.tx_bytes.unwrap_or(0);
860+
usage.network.tx_packets = net.tx_packets.unwrap_or(0);
859861
}
860862

861863
if let Some(cpu_stats) = &stats.cpu_stats
@@ -954,6 +956,13 @@ impl DockerProcessHandle {
954956
stdin_task,
955957
})
956958
}
959+
960+
#[inline]
961+
fn get_server(&self) -> Result<Arc<super::super::InnerServer>, anyhow::Error> {
962+
self.server
963+
.upgrade()
964+
.ok_or_else(|| anyhow::anyhow!("server has been dropped"))
965+
}
957966
}
958967

959968
impl Drop for DockerProcessHandle {
@@ -1023,10 +1032,7 @@ impl super::ProcessHandle for DockerProcessHandle {
10231032
}
10241033

10251034
async fn sync_configuration(&self) -> Result<(), anyhow::Error> {
1026-
let server = self
1027-
.server
1028-
.upgrade()
1029-
.ok_or_else(|| anyhow::anyhow!("server has been dropped"))?;
1035+
let server = self.get_server()?;
10301036

10311037
let update_config = server
10321038
.configuration
@@ -1048,10 +1054,7 @@ impl super::ProcessHandle for DockerProcessHandle {
10481054
}
10491055

10501056
async fn stop(&self) -> Result<(), anyhow::Error> {
1051-
let server = self
1052-
.server
1053-
.upgrade()
1054-
.ok_or_else(|| anyhow::anyhow!("server has been dropped"))?;
1057+
let server = self.get_server()?;
10551058

10561059
let process_config = server.process_configuration.read().await;
10571060
let stop_type = process_config.stop.r#type.clone();

application/src/server/resources.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ nestify::nest! {
1414
#[schema(inline)]
1515
pub network: #[derive(ToSchema, Default, Deserialize, Serialize, Debug, Clone, Copy, PartialEq)] pub struct ResourceUsageNetwork {
1616
pub rx_bytes: u64,
17+
pub rx_packets: u64,
1718
pub tx_bytes: u64,
19+
pub tx_packets: u64,
1820
},
1921

2022
pub cpu_absolute: f64,

application/src/stats.rs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ struct SystemCpuStats {
1414
#[derive(ToSchema, Serialize, Default)]
1515
struct SystemNetworkStats {
1616
received: u64,
17+
received_packets: u64,
1718
receiving_rate: f64,
19+
received_packets_rate: f64,
1820
sent: u64,
21+
sent_packets: u64,
1922
sending_rate: f64,
23+
sending_packets_rate: f64,
2024
}
2125

2226
#[derive(ToSchema, Serialize, Default)]
@@ -112,15 +116,25 @@ impl Default for StatsManager {
112116
let total_disk_write = disk.usage().total_written_bytes;
113117
let disk_write_rate = disk.usage().written_bytes as f64;
114118

115-
let mut total_received = 0;
116-
let mut net_in_rate = 0.0;
117-
let mut total_transmitted = 0;
118-
let mut net_out_rate = 0.0;
119-
for (_, network) in networks.iter() {
120-
total_received += network.total_received();
121-
net_in_rate += network.received() as f64;
122-
total_transmitted += network.total_transmitted();
123-
net_out_rate += network.transmitted() as f64;
119+
let mut network = SystemNetworkStats {
120+
received: 0,
121+
receiving_rate: 0.0,
122+
received_packets: 0,
123+
received_packets_rate: 0.0,
124+
sent: 0,
125+
sending_rate: 0.0,
126+
sent_packets: 0,
127+
sending_packets_rate: 0.0,
128+
};
129+
for (_, net) in networks.iter() {
130+
network.received += net.total_received();
131+
network.received_packets += net.total_packets_received();
132+
network.receiving_rate += net.received() as f64;
133+
network.received_packets_rate += net.packets_received() as f64;
134+
network.sent += net.total_transmitted();
135+
network.sent_packets += net.total_packets_transmitted();
136+
network.sending_rate += net.transmitted() as f64;
137+
network.sending_packets_rate += net.packets_transmitted() as f64;
124138
}
125139

126140
let cpu_usage = sys.global_cpu_usage();
@@ -136,12 +150,7 @@ impl Default for StatsManager {
136150
threads: cpu_threads,
137151
model: cpu_model,
138152
},
139-
network: SystemNetworkStats {
140-
received: total_received,
141-
receiving_rate: net_in_rate,
142-
sent: total_transmitted,
143-
sending_rate: net_out_rate,
144-
},
153+
network,
145154
memory: SystemMemoryStats {
146155
used: used_memory,
147156
used_process: used_memory_process,

0 commit comments

Comments
 (0)