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);
|
write_human_received_stats(&mut out, *received_stats);
|
||||||
out
|
out
|
||||||
}
|
}
|
||||||
ClientEvent::Warning { kind, message } => {
|
ClientEvent::Warning { kind, message, .. } => {
|
||||||
format!("warning kind={} message={message}", warning_kind(*kind))
|
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);
|
write_packet_meta(&mut out, *packet_meta);
|
||||||
out.push_str(" warning=late");
|
out.push_str(" warning=late");
|
||||||
}
|
}
|
||||||
ClientEvent::Warning { kind, message } => {
|
ClientEvent::Warning { kind, message, at } => {
|
||||||
write_common(&mut out, "warning");
|
write_common(&mut out, "warning");
|
||||||
|
write_wall(&mut out, "at", at.wall);
|
||||||
write!(
|
write!(
|
||||||
out,
|
out,
|
||||||
" warning_kind={} message={}",
|
" warning_kind={} message={}",
|
||||||
@@ -637,7 +638,7 @@ fn format_simple(event: &ClientEvent) -> String {
|
|||||||
}
|
}
|
||||||
out
|
out
|
||||||
}
|
}
|
||||||
ClientEvent::Warning { kind, message } => {
|
ClientEvent::Warning { kind, message, .. } => {
|
||||||
format!("warning kind={} message={message}", warning_kind(*kind))
|
format!("warning kind={} message={message}", warning_kind(*kind))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1205,6 +1206,7 @@ mod tests {
|
|||||||
&ClientEvent::Warning {
|
&ClientEvent::Warning {
|
||||||
kind: WarningKind::WrongToken,
|
kind: WarningKind::WrongToken,
|
||||||
message: "bad".to_owned(),
|
message: "bad".to_owned(),
|
||||||
|
at: ClientTimestamp::now()
|
||||||
},
|
},
|
||||||
OutputMode::RttUs
|
OutputMode::RttUs
|
||||||
),
|
),
|
||||||
@@ -1475,6 +1477,7 @@ mod tests {
|
|||||||
ClientEvent::Warning {
|
ClientEvent::Warning {
|
||||||
kind: WarningKind::UntrackedReply,
|
kind: WarningKind::UntrackedReply,
|
||||||
message: "untracked reply".to_owned(),
|
message: "untracked reply".to_owned(),
|
||||||
|
at: ClientTimestamp::now(),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -319,6 +319,7 @@ impl Client {
|
|||||||
return Ok(vec![ClientEvent::Warning {
|
return Ok(vec![ClientEvent::Warning {
|
||||||
kind: WarningKind::MalformedOrUnrelatedPacket,
|
kind: WarningKind::MalformedOrUnrelatedPacket,
|
||||||
message: "dropped malformed or unrelated packet".to_owned(),
|
message: "dropped malformed or unrelated packet".to_owned(),
|
||||||
|
at: now,
|
||||||
}]);
|
}]);
|
||||||
};
|
};
|
||||||
self.process_echo_reply(reply, packet_len, now, datagram.meta)
|
self.process_echo_reply(reply, packet_len, now, datagram.meta)
|
||||||
@@ -415,6 +416,7 @@ impl Client {
|
|||||||
return Ok(vec![ClientEvent::Warning {
|
return Ok(vec![ClientEvent::Warning {
|
||||||
kind: WarningKind::MalformedOrUnrelatedPacket,
|
kind: WarningKind::MalformedOrUnrelatedPacket,
|
||||||
message: "dropped malformed or unrelated packet".to_owned(),
|
message: "dropped malformed or unrelated packet".to_owned(),
|
||||||
|
at: now,
|
||||||
}]);
|
}]);
|
||||||
};
|
};
|
||||||
self.process_echo_reply(reply, packet_len, now, meta)
|
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}",
|
"dropped reply with wrong token: expected {token:#x}, got {:#x}",
|
||||||
reply.token
|
reply.token
|
||||||
),
|
),
|
||||||
|
at: now,
|
||||||
}]);
|
}]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -561,6 +564,7 @@ impl Client {
|
|||||||
message: format!(
|
message: format!(
|
||||||
"dropped reply with untracked seq {wire_seq} (no pending or completed entry)"
|
"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);
|
assert_eq!(events.len(), 1);
|
||||||
match &events[0] {
|
match &events[0] {
|
||||||
ClientEvent::Warning { kind, message } => {
|
ClientEvent::Warning { kind, message, .. } => {
|
||||||
assert_eq!(*kind, WarningKind::MalformedOrUnrelatedPacket);
|
assert_eq!(*kind, WarningKind::MalformedOrUnrelatedPacket);
|
||||||
assert_eq!(message, "dropped malformed or unrelated packet");
|
assert_eq!(message, "dropped malformed or unrelated packet");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ pub enum ClientEvent {
|
|||||||
Warning {
|
Warning {
|
||||||
kind: WarningKind,
|
kind: WarningKind,
|
||||||
message: String,
|
message: String,
|
||||||
|
at: ClientTimestamp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ mod tests {
|
|||||||
ClientEvent::Warning {
|
ClientEvent::Warning {
|
||||||
kind: WarningKind::UntrackedReply,
|
kind: WarningKind::UntrackedReply,
|
||||||
message: format!("event-{n}"),
|
message: format!("event-{n}"),
|
||||||
|
at: ClientTimestamp::now(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user