itamarst / eliot

Eliot: the logging system that tells you *why* it happened
https://eliot.readthedocs.io
Apache License 2.0
1.1k stars 66 forks source link

Visual browser for logs - part 1 #330

Open itamarst opened 5 years ago

itamarst commented 5 years ago

When looking at batch process I often want to zoom in on some particular part of the run and see the message structure. eliot-tree + grep works, but I often want something interactive, too.

This probably needs a series of iterations to figure out what features are useful. This particular issue covers having a tree with ability to fold/unfold branches, to see what the experience is like.

Easiest way to do that is probably to use something like https://github.com/d3/d3-hierarchy

itamarst commented 5 years ago

D3 is hard. Maybe http://fperucic.github.io/treant-js/ will be easier.

itamarst commented 5 years ago

Blergh. Vue?

itamarst commented 5 years ago

OK have a sketch started in a branch. As first pass should copy eliot-tree's visualization of the tree, just done in HTML (@jonathanj FYI).

jonathanj commented 5 years ago

Seems pretty interesting as a start. I wanted to write a React component, so anyone could drop it into their React application (including me, to build out a bigger Eliot log viewer.) Might be worth taking a similar approach for Vue?

It might also be worth trying to (broadly) roadmap this feature.

itamarst commented 5 years ago

Roadmapping is a good idea. Also now I'm being tempted to use this as an excuse to learn Elm which is maybe a bad idea. OTOH I'm only minimally literate in JavaScript so maybe not much more of a learning curve.

guy4261 commented 5 years ago

Why not try some graph rendering software, e.g. https://cytoscape.org or anything that can either load the json log file to some nodes/edges structure?

itamarst commented 5 years ago

That might be worth looking into, yeah, since I ran out of steam building the UI (turns out just dumping eliot-tree output to a web page was enough for most of my immediate use cases.)

jtrakk commented 5 years ago

Birdseye is really nice to use and might have some ideas for an interface, especially for programs with lots of @log_call-decorated functions.

itamarst commented 5 years ago

That looks pretty cool.