Skip to content

feat(graph-view): render DAG edges from span links in Trace Graph#3570

Open
SoumyaRaikwar wants to merge 4 commits intojaegertracing:mainfrom
SoumyaRaikwar:feat/dag-edges-graph-view
Open

feat(graph-view): render DAG edges from span links in Trace Graph#3570
SoumyaRaikwar wants to merge 4 commits intojaegertracing:mainfrom
SoumyaRaikwar:feat/dag-edges-graph-view

Conversation

@SoumyaRaikwar
Copy link
Copy Markdown
Contributor

Which problem is this PR solving?

Description of the changes

Previously, the Trace Graph view in the Jaeger UI only rendered parent-child edges based on the parentSpanID. Any additional references (such as multiple FOLLOWS_FROM references or OTEL span links) were silently dropped, meaning true Directed Acyclic Graphs (DAGs) were visualized only as trees.

This PR updates the trace graph rendering pipeline to include these additional edges:

  • Updates TDenseSpan and DenseTrace to pass span.links to the DAG builder pipeline.
  • Modifies convPlexus.ts to iterate over span links and generate additional edges representing cross-span references within the same trace.
  • Additional edges are deduplicated and correctly rendered as non-blocking (dashed lines) in the graph view, accurately reflecting causal relationships that aren't strict parent-child.
  • Adds comprehensive unit tests spanning edge generation logic and missing coverage branches.

screenshots
Screenshot from 2026-03-07 02-22-50
Screenshot from 2026-03-07 02-22-56

How was this change tested?

  • Added unit tests in convPlexus.test.ts covering parent-child edge generation, span link edge generation, deduplication logic, and cross-trace filtering.
  • Updated calculateTraceDagEV.test.js to verify edge types and span counts with DAG structures.
  • Visually verified locally by ingesting a trace containing multiple span references (CHILD_OF and FOLLOWS_FROM) and verifying that the Trace Graph view natively renders the converging DAG edges.
  • All 2481 tests pass successfully across 217 test suites. npm run lint reports 0 errors.

Checklist

AI Usage in this PR (choose one)

See AI Usage Policy.

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

Signed-off-by: SoumyaRaikwar <somuraik@gmail.com>
@SoumyaRaikwar SoumyaRaikwar requested a review from a team as a code owner March 6, 2026 21:08
Copilot AI review requested due to automatic review settings March 6, 2026 21:08
@SoumyaRaikwar SoumyaRaikwar changed the title render DAG edges from span links in Trace Graph feat(graph-view): render DAG edges from span links in Trace Graph Mar 6, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 6, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.22%. Comparing base (fc70e81) to head (a681f82).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3570      +/-   ##
==========================================
+ Coverage   89.19%   89.22%   +0.02%     
==========================================
  Files         330      330              
  Lines        9894     9917      +23     
  Branches     2567     2573       +6     
==========================================
+ Hits         8825     8848      +23     
  Misses        927      927              
  Partials      142      142              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@SoumyaRaikwar
Copy link
Copy Markdown
Contributor Author

@yurishkuro please take a look whenever you have time., also should i test it with the example trace provided in issue?

Copilot AI review requested due to automatic review settings March 11, 2026 18:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@SoumyaRaikwar
Copy link
Copy Markdown
Contributor Author

@jkowall @yurishkuro PTAL.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: jaeger does not support true DAG traces?

2 participants