-
Notifications
You must be signed in to change notification settings - Fork 513
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
Add tooltip when hovering Critical Path #1871
Add tooltip when hovering Critical Path #1871
Conversation
Signed-off-by: GLVS Kiriti <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
... and 2 files with indirect coverage changes 📢 Thoughts on this report? Let us know!. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks good. I suggested a change to the wording to be a bit more explicit. An even more advanced form would be to use display similar to logs where we show a full list of CP segments in the span with some of their stats, like start, end, % of total CP. But we can start with just static popup.
There is one issue currently, though. When the span also has log ticks, it's almost impossible to get the logs popup to show if there's also a CP segment in the same timeframe. Somehow we need to make sure that the logs tooltip takes priority over CP. Perhaps this could be achieved with z-order, I am not sure.
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBar.tsx
Outdated
Show resolved
Hide resolved
I just gave it a go, and yes, the <div
data-testid="SpanBar--logMarker"
className="SpanBar--logMarker"
style={{ left: positionKey, zIndex: 3}}
/> (I tried with the value 3 (zIndex). Anything lower than that wouldn't work.) A design suggestion: Can we change the color of CP on mouse hover? It would make more sense to the user that ToolTip is related the CP, and not the whole span. |
@yurishkuro |
Not a bad idea, as long as the color is distinct from the span color palette. E.g., don't we already use brown for spans? I also think it would be nice for the log ticks to enlarge when hovered (like using a bolder line), and maybe have a slightly larger clickable bounding box. Right now it takes very fine pointing to get a popup from a log tick. |
We already use maybe. Not sure though, I chose brown just for example
As far as I understand, isn't the size of that point so thin, to accommodate all ticks in a continuous timeframe of milliseconds? Another POV, we can increase the |
Yes, but when you have too many logs clustered together no matter what you do they will not be distinguishable without zooming in on the timeline. For comparison, Zipkin UI used to use oval pills to represent event (much thicker than our ticks): |
Ah yes, I forgot that the end users can zoom in on the timeline. |
…r/SpanBar.tsx Co-authored-by: Yuri Shkuro <[email protected]> Signed-off-by: GLVSKiriti <[email protected]>
We have many light colors like yellow in the same pic, I'm not sure white will be contrasting enough on those. May we could do animation of white spot running left to right once? |
The first s/s is awesome! When children are collapsed, wouldn't the CP segments have identical edge timestamps, like [t1, t2], [t2, t3], ...? If so, why don't we merge them? It would help this running spot, and in general it's meaningless to have adjacent CP segments without a gap between them. |
Signed-off-by: GLVS Kiriti <[email protected]>
Signed-off-by: GLVS Kiriti <[email protected]>
Signed-off-by: GLVS Kiriti <[email protected]>
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBar.tsx
Outdated
Show resolved
Hide resolved
Signed-off-by: GLVS Kiriti <[email protected]>
…s collapsed Signed-off-by: GLVS Kiriti <[email protected]>
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBar.css
Outdated
Show resolved
Hide resolved
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx
Outdated
Show resolved
Hide resolved
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx
Outdated
Show resolved
Hide resolved
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx
Outdated
Show resolved
Hide resolved
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx
Outdated
Show resolved
Hide resolved
Signed-off-by: GLVS Kiriti <[email protected]>
Signed-off-by: GLVS Kiriti <[email protected]>
Removed unnecessary else if Signed-off-by: GLVS Kiriti <[email protected]>
packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/VirtualizedTraceView.tsx
Show resolved
Hide resolved
// If the span is collapsed, recursively find all of its descendants. | ||
const findAllDescendants = (currentChildSpanIds: string[]) => { | ||
currentChildSpanIds.forEach(eachId => { | ||
const currentChildSpan = trace.spans.find(a => a.spanID === eachId)!; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should really just add a helper method to the Trace object: trace.findSpan(spanID)
thanks! |
what about adding a helper method |
Well, to be honest, and I raised this during the project, this whole searching should go away. We build a proper tree in one place, we should just keep it as part of the trace and always navigate it, instead of doing the same work over and over. All these searches are O(N). |
@bobrik please open a new ticket. You can disable critical path for all traces via config, but there's certainly room for perf optimization. |
I filed #2179 for this. |
Which problem is this PR solving?
Description of the changes
@yurishkuro