-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add streaming option #109
Comments
I like this idea. In the interest of keeping parsers simple, I would be supportive of completely replacing the current qlog format with this. |
I agree with @marten-seemann. We should optimize for the primary case, which is definitely single machine/trace. |
Streaming would definitely be useful for me too. Currently, I have to use a two stage approach to solve that: stream-supporting binary log, then convert to qlog once I am sure the end is reached. And yes, all usage is single machine/trace. |
support this, would be good to see a short example of the difference between new and old formats so I can start planning |
I've updated the issue with an example, PTAL. I'm highly skeptical that that type of thing would be de-serializable automatically with something like @LPardue's serde, but a girl can dream. |
Thanks. FWIW, the current qlog format is effectively not deserializable using serde either, so nothing would be lost. edit: hmm, actually the new format might make it more straightforward to use a semi-automated deserializer |
Initial support for "newline delimited JSON" qlog streaming is now in qvis per quiclog/qvis@8504c0e An example draft-02 NDJSON file can be found in attachment (should load just fine in the live qvis atm). In the meantime, further feedback based on the example file is of course welcome. |
- Removes the event_fields optimization. Relates to #30. Fixes #89. - Removes several points of complexity wrt the group_id field, as they were not being used in practice. - Makes JSON the default serialization option. Fixes #101. - Adds a proper streaming option with NDJSON. Relates to #106. Fixes #109, #2. - Generally tightens the text and adds more examples.
This issues should have been resolved by the choice of NDJSON as streaming format as of f5db7cd |
Current thinking is to allow http://ndjson.org and to log the qlog header information as a separate object on top.
This would remove the possibility to log multiple traces in the same qlog file if it uses the streaming option, so users would need to use
group_id
in those cases.Would also require the addition of a "format" field to the qlog metadata header (though we probably need that anyway if we want to keep support for other JSON-based optimizations like
event_fields
.We first need to check how this plays with oboe.js in qvis though, to see if we need to add another parser in the mix.
See also #106 and #2 for more discussion.
For comparison:
CC @marten-seemann @huitema
The text was updated successfully, but these errors were encountered: