Skip to content

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

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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