feat(client): add timestamp to ClientEvent::Warning
Include a timestamp when reporting warnings to allow consumers like the machine-readable formatter to provide temporal context for troubleshooting.
This commit is contained in:
5 files changed
+13
-4
No files matched your search
@@ -442,7 +442,7 @@ pub fn format_human_event_with_options(
|
||||
write_human_received_stats(&mut out, *received_stats);
|
||||
out
|
||||
}
|
||||
ClientEvent::Warning { kind, message } => {
|
||||
ClientEvent::Warning { kind, message, .. } => {
|
||||
format!("warning kind={} message={message}", warning_kind(*kind))
|
||||
}
|
||||
}
|
||||
@@ -565,8 +565,9 @@ fn format_machine(event: &ClientEvent) -> String {
|
||||
write_packet_meta(&mut out, *packet_meta);
|
||||
out.push_str(" warning=late");
|
||||
}
|
||||
ClientEvent::Warning { kind, message } => {
|
||||
ClientEvent::Warning { kind, message, at } => {
|
||||
write_common(&mut out, "warning");
|
||||
write_wall(&mut out, "at", at.wall);
|
||||
write!(
|
||||
out,
|
||||
" warning_kind={} message={}",
|
||||
@@ -637,7 +638,7 @@ fn format_simple(event: &ClientEvent) -> String {
|
||||
}
|
||||
out
|
||||
}
|
||||
ClientEvent::Warning { kind, message } => {
|
||||
ClientEvent::Warning { kind, message, .. } => {
|
||||
format!("warning kind={} message={message}", warning_kind(*kind))
|
||||
}
|
||||
}
|
||||
@@ -1205,6 +1206,7 @@ mod tests {
|
||||
&ClientEvent::Warning {
|
||||
kind: WarningKind::WrongToken,
|
||||
message: "bad".to_owned(),
|
||||
at: ClientTimestamp::now()
|
||||
},
|
||||
OutputMode::RttUs
|
||||
),
|
||||
@@ -1475,6 +1477,7 @@ mod tests {
|
||||
ClientEvent::Warning {
|
||||
kind: WarningKind::UntrackedReply,
|
||||
message: "untracked reply".to_owned(),
|
||||
at: ClientTimestamp::now(),
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
@@ -319,6 +319,7 @@ impl Client {
|
||||
return Ok(vec![ClientEvent::Warning {
|
||||
kind: WarningKind::MalformedOrUnrelatedPacket,
|
||||
message: "dropped malformed or unrelated packet".to_owned(),
|
||||
at: now,
|
||||
}]);
|
||||
};
|
||||
self.process_echo_reply(reply, packet_len, now, datagram.meta)
|
||||
@@ -415,6 +416,7 @@ impl Client {
|
||||
return Ok(vec![ClientEvent::Warning {
|
||||
kind: WarningKind::MalformedOrUnrelatedPacket,
|
||||
message: "dropped malformed or unrelated packet".to_owned(),
|
||||
at: now,
|
||||
}]);
|
||||
};
|
||||
self.process_echo_reply(reply, packet_len, now, meta)
|
||||
@@ -447,6 +449,7 @@ impl Client {
|
||||
"dropped reply with wrong token: expected {token:#x}, got {:#x}",
|
||||
reply.token
|
||||
),
|
||||
at: now,
|
||||
}]);
|
||||
}
|
||||
|
||||
@@ -561,6 +564,7 @@ impl Client {
|
||||
message: format!(
|
||||
"dropped reply with untracked seq {wire_seq} (no pending or completed entry)"
|
||||
),
|
||||
at: now,
|
||||
}])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1678,7 +1678,7 @@ fn receive_metadata_does_not_broaden_malformed_warning() {
|
||||
|
||||
assert_eq!(events.len(), 1);
|
||||
match &events[0] {
|
||||
ClientEvent::Warning { kind, message } => {
|
||||
ClientEvent::Warning { kind, message, .. } => {
|
||||
assert_eq!(*kind, WarningKind::MalformedOrUnrelatedPacket);
|
||||
assert_eq!(message, "dropped malformed or unrelated packet");
|
||||
}
|
||||
|
||||
@@ -96,6 +96,7 @@ pub enum ClientEvent {
|
||||
Warning {
|
||||
kind: WarningKind,
|
||||
message: String,
|
||||
at: ClientTimestamp,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -279,6 +279,7 @@ mod tests {
|
||||
ClientEvent::Warning {
|
||||
kind: WarningKind::UntrackedReply,
|
||||
message: format!("event-{n}"),
|
||||
at: ClientTimestamp::now(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user