feat(client): record and report packet size in client events

This commit is contained in:
Nils Andreas Svee committed 2026-05-01 10:05:43 +07:00
1 parent c23db87d7c
commit 18f15f16d5
3 files changed
+15 -1

No files matched your search

+6
View File
@@ -207,6 +207,7 @@ fn format_machine(event: &ClientEvent) -> String {
server_timing, server_timing,
one_way, one_way,
received_stats, received_stats,
bytes: _,
packet_meta, packet_meta,
} => { } => {
write_common(&mut out, "echo_reply"); write_common(&mut out, "echo_reply");
@@ -235,6 +236,7 @@ fn format_machine(event: &ClientEvent) -> String {
seq, seq,
remote, remote,
received_at, received_at,
bytes: _,
} => { } => {
write_common(&mut out, "duplicate"); write_common(&mut out, "duplicate");
write_seq(&mut out, *seq, None); write_seq(&mut out, *seq, None);
@@ -253,6 +255,7 @@ fn format_machine(event: &ClientEvent) -> String {
server_timing, server_timing,
one_way, one_way,
received_stats, received_stats,
bytes: _,
packet_meta, packet_meta,
} => { } => {
write_common(&mut out, "late"); write_common(&mut out, "late");
@@ -536,6 +539,7 @@ mod tests {
count: Some(9), count: Some(9),
window: Some(0x7), window: Some(0x7),
}), }),
bytes: 64,
packet_meta: PacketMeta::default(), packet_meta: PacketMeta::default(),
} }
} }
@@ -675,6 +679,7 @@ mod tests {
seq: 3, seq: 3,
remote: test_remote(), remote: test_remote(),
received_at: ts, received_at: ts,
bytes: 64,
}, },
ClientEvent::LateReply { ClientEvent::LateReply {
seq: 4, seq: 4,
@@ -687,6 +692,7 @@ mod tests {
server_timing: None, server_timing: None,
one_way: None, one_way: None,
received_stats: None, received_stats: None,
bytes: 64,
packet_meta: PacketMeta::default(), packet_meta: PacketMeta::default(),
}, },
ClientEvent::Warning { ClientEvent::Warning {
+6 -1
View File
@@ -401,6 +401,7 @@ impl Client {
server_timing, server_timing,
one_way, one_way,
received_stats, received_stats,
bytes: packet.len(),
packet_meta: PacketMeta::default(), packet_meta: PacketMeta::default(),
}); });
} else { } else {
@@ -414,6 +415,7 @@ impl Client {
server_timing, server_timing,
one_way, one_way,
received_stats, received_stats,
bytes: packet.len(),
packet_meta: PacketMeta::default(), packet_meta: PacketMeta::default(),
}); });
} }
@@ -439,6 +441,7 @@ impl Client {
server_timing: build_server_timing(&reply.timestamps), server_timing: build_server_timing(&reply.timestamps),
one_way: None, one_way: None,
received_stats: build_received_stats(&reply), received_stats: build_received_stats(&reply),
bytes: packet.len(),
packet_meta: PacketMeta::default(), packet_meta: PacketMeta::default(),
}]) }])
} else { } else {
@@ -1487,7 +1490,7 @@ mod tests {
#[test] #[test]
fn send_probe_sends_valid_echo_request() { fn send_probe_sends_valid_echo_request() {
let params = default_params(); let params = default_params();
let server = silent_open_server(params); let server = silent_open_server(params.clone());
let config = ClientConfig { let config = ClientConfig {
socket_config: crate::SocketConfig { socket_config: crate::SocketConfig {
recv_timeout: Some(Duration::from_millis(200)), recv_timeout: Some(Duration::from_millis(200)),
@@ -1656,10 +1659,12 @@ mod tests {
rtt, rtt,
received_stats, received_stats,
server_timing, server_timing,
bytes,
.. ..
} => { } => {
assert_eq!(*seq, 0); assert_eq!(*seq, 0);
assert_eq!(*logical_seq, 0); assert_eq!(*logical_seq, 0);
assert_eq!(*bytes, echo_packet_len(false, &params));
assert!(rtt.raw > Duration::ZERO); assert!(rtt.raw > Duration::ZERO);
assert_eq!(rtt.effective, rtt.adjusted.unwrap_or(rtt.raw)); assert_eq!(rtt.effective, rtt.adjusted.unwrap_or(rtt.raw));
assert!(received_stats.is_some()); assert!(received_stats.is_some());
+3
View File
@@ -46,6 +46,7 @@ pub enum ClientEvent {
server_timing: Option<ServerTiming>, server_timing: Option<ServerTiming>,
one_way: Option<OneWayDelaySample>, one_way: Option<OneWayDelaySample>,
received_stats: Option<ReceivedStatsSample>, received_stats: Option<ReceivedStatsSample>,
bytes: usize,
packet_meta: PacketMeta, packet_meta: PacketMeta,
}, },
@@ -60,6 +61,7 @@ pub enum ClientEvent {
seq: u32, seq: u32,
remote: SocketAddr, remote: SocketAddr,
received_at: ClientTimestamp, received_at: ClientTimestamp,
bytes: usize,
}, },
LateReply { LateReply {
@@ -73,6 +75,7 @@ pub enum ClientEvent {
server_timing: Option<ServerTiming>, server_timing: Option<ServerTiming>,
one_way: Option<OneWayDelaySample>, one_way: Option<OneWayDelaySample>,
received_stats: Option<ReceivedStatsSample>, received_stats: Option<ReceivedStatsSample>,
bytes: usize,
packet_meta: PacketMeta, packet_meta: PacketMeta,
}, },