moqtap-trace
Event model, trace I/O, derived metrics.
What it does
Section titled “What it does”moqtap-trace defines the TraceEvent struct and the .moqtrace file format. It also computes derived metrics from event streams.
TraceEvent
Section titled “TraceEvent”pub struct TraceEvent { pub timestamp_us: u64, pub direction: Direction, pub message: ControlMessage, pub raw_bytes: Vec<u8>, pub warnings: Vec<ParseWarning>, pub quic_stats: Option<QuicStats>,}Derived metrics
Section titled “Derived metrics”- Control message RTT — request/response pairing by request ID
- Object arrival rate — objects per second per track
- Inter-object gap — time between consecutive objects
- Subscribe-to-first-object latency
- FETCH round-trip time
Trace file I/O
Section titled “Trace file I/O”use moqtap_trace::{TraceWriter, TraceReader};
// Write events to a .moqtrace filelet mut writer = TraceWriter::new("session.moqtrace")?;writer.write_event(&event)?;
// Read events from a filelet reader = TraceReader::open("session.moqtrace")?;for event in reader { println!("{:?}", event?);}