Skip to content

[Feature]: combine all graph views into one - LFX Mentorship #1466

Closed
@yurishkuro

Description

@yurishkuro

For the application process please refer to this issue.

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions