feat(am-vis): add diagram generator #216
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
am-vis is a
dbgprotocol based distributed diagram renderer. It creates a graph of interconnected machines, based on fragmented data they provide via:It does not persist transitions and only knows the latest active states. The rendering uses ELK and is done by:
This prototype reads
am-dbg-dump.gob.brexport file and renderes some predefined configurations.machIdsneed to be adjusted to the dumped machine IDs.Config
Graphs can be filtered using the rendering config:
TODO
am-vis import-render mydiag --import-file dump.gob.br --output-svg --render-opt1=true ...am-vis live-render mydiag --output-svg --render-opt1=true ...pkg/graphLater / out of scope
Legend
Previews
It's recommended to view the SVGs using SVG Navigator.
%%{init: {'flowchart': {'defaultRenderer': 'elk'}} }%% flowchart LR classDef _active color:black,fill:yellow; subgraph a[nc-TCWP-cli-140116<br>#node-client] direction TB b([WorkerRequested]) b --o c d([WorkerDisconnected]) e([Exception]) f([SuperDisconnecting]) g([WorkerReady]) g --x b h([ErrWorker]) h --o e i([Ready]) i --o g j([SuperConnecting]) c([SuperReady]) k([WorkerDisconnecting]) l([WorkerPayload]) m([Start]) n([WorkerConnecting]) o([ErrSupervisor]) o --o e p([WorkerConnected]) q([ErrNetwork]) q --o e r([Heartbeat]) s([ErrHandlerTimeout]) s --o e t([Healthcheck]) u([SuperConnected]) v([SuperDisconnected]) class p,g,i,u,c,m _active; end