Closed
Description
For the application process please refer to this issue.
- Mentor: @yurishkuro
- Mentee: @prathamesh-mutkure
Requirement
As a user of Jaeger UI I want to have a consistent experience with service graph views.
Problem
Jaeger currently uses three distinct renderings for service graphs
- the DAG view, good for small architectures (uses Cytoscape.js)
- the System view good for large architectures (uses react-viz-force-graph)
- the internal Plexus lib used for deep dependency graphs (uses D3 and graphviz rendering engine)
Proposal
To reduce the different code paths and provide a consistent user experience we should converge on a single graph visualization.
Plexus is the likely choice, but it needs to be benchmarked on large graphs (the System view can handle several thousand nodes). We can also consider server-side filtering (proposed in #784).
We may also have to address #1081 (deprecated graphing libs)
Some Evaluation Criteria
- is there support for stable / deterministic layouts? This is mandatory for graph views of a single trace, where nodes are arranged according to time and depth.
- how "future proof" is the library - actively supported, big contributor community, etc. (including its own dependencies). Are there big projects that use it?
- how many new dependencies it pulls
- can it handle large graphs (say up to 5k nodes)?
- does it allow customization of the graph? Including labels on edges, different viz for notes, interaction with nodes (left/right click)