Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve multi-parent span visualization #299

Closed
andremarianiello opened this issue Dec 20, 2018 · 6 comments
Closed

Improve multi-parent span visualization #299

andremarianiello opened this issue Dec 20, 2018 · 6 comments

Comments

@andremarianiello
Copy link

Requirement - what kind of business use case are you trying to solve?

TL;DR - I want to user Jeager UI to visualize traces with spans that have multiple span references in a way that makes those multiple references useful.

Actual reason why I have spans with multiple references:

I have a pipeline with multiple stages: A, B, C, etc. I have multiple elements flowing through this pipeline: 1, 2, 3, etc. Each pipeline stage has a span representing the beginning and ending execution of that stage. Each element has a span when it enters the pipeline until it leaves. I also create a span for when element n is processes by stage X. Logically, (in my opinion) the span C2 (element 2 is processed by stage C) is a child of span C, and follows from B2, the previous pipeline stage. Luckily, I can represent these relationships using the jaeger opentracing client. The visualization I get for these multi-parent spans, however, depends on the order that I set the references, but the visualization I want might not match that.

Problem - what in Jaeger blocks you from solving the requirement?

Jaeger UI simply chooses a span reference to be the parent in the tree visualization. There is no visual relationship between a span and its non-primary span references.

Proposal - what do you suggest to solve the problem or improve the existing situation?

I'm not a designer, so I don't really have a great idea for this, but I will share what I have considered:

  • Display multiple copies of the child span, one beneath each parent span (this DAG->Tree conversion can lead to exponential blowup in the pathological case, so we will have to be careful how it is done). Provide a way to jump between copies of the child span in the visualization to aid in navigating
  • Have a single copy of the child span in the visualization, but on the parent spans provide a button that moves all child spans underneath it. This essentially pivots the view of the trace. For example, if A has children B and C, and B and C have child D, clicking B will make D appear below B (as if B was the primary reference), and clicking C will make D appear below C (as if C was the primary reference). It would also be nice in this case to click on D and select a reference to move it under
  • Steal an existing visualization for DAGs
@yurishkuro
Copy link
Member

Are you specifically interested in using the Gantt Chart? Because if we simply draw a trace as DAG then the multi-tenancy situation is trivial to display, but the DAG will not provide any timing/duration information.

@andremarianiello
Copy link
Author

I still want the timing and metadata information that the current visualization provides.

@objectiser
Copy link
Contributor

objectiser commented Dec 21, 2018

Possibly could be achieved by showing dependency links (thin black lines maybe with arrows) between the child cell and the multiple parent (reference) cells? Might need to ensure the child is always shown below all of the parents.

Also we should consider the case where the reference is to another trace instance - so provide navigation marker to allow user to view the other trace.

@yurishkuro
Copy link
Member

Someone needs to do visual prototype (mock is fine). Aside from DAG view, I don't yet see how multiple references can be shown in the Gantt chart.

@yurishkuro
Copy link
Member

This issue #358 is just to surface reference information in span details (not in graphical form).

@jkowall
Copy link
Contributor

jkowall commented Oct 6, 2021

Not following how this would be visualized so I am closing this out, if someone can explain or show how it might be visualized we can keep it open.

@jkowall jkowall closed this as completed Oct 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants