A qlog file using the QlogFileSeq schema can be serialized to a
streamable JSON format called JSON Text Sequences (JSON-SEQ)
(RFC7464). The top-level element in this schema defines only a
small set of “header” fields and an array of component traces.
The “system_info” field can be used to record system-specific details related to an event. This is useful, for instance,
where an application splits work across CPUs, processes, or threads and events for a single trace occur on potentially
different combinations thereof. Each field is optional to support deployment diversity.
The exact conceptual definition of a Trace can be fluid. For
example, a trace could contain all events for a single connection,
for a single endpoint, for a single measurement interval, for a
single protocol, etc. In the normal use case however, a trace is a
log of a single data flow collected at a single location or vantage
point. For example, for QUIC, a single trace only contains events
for a single logical QUIC connection for either the client or the
server.
TraceSeq is used with QlogFileSeq. It is conceptually similar to a
Trace, with the exception that qlog events are not contained within
it, but rather appended after it in a QlogFileSeq.