-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[APM] Breakdown graphs design #34716
Comments
Pinging @elastic/kibana-design |
Pinging @elastic/apm-ui |
@felixbarny Just a heads up; please use |
I've updated the description to feature a first mock of adding the new graph to each view. |
Based on feedback received in yesterday's meeting @nehaduggal and @felixbarny, I've made some additional updates to the designs in the description. Have a look and let me know if there's anymore feedback. One thing I've not included is the description when viewing a trace via the entry transaction. We discussed having a note or callout that described that the breakdown was limited to the entry transaction. Is this correct? Would we only show it when viewing the entry transaction views (typically coming from the Traces list)? Thanks, |
@felixbarny can you confirm the following?
|
Thx for the ping! I'd say we should always show that note as non-entry transactions can have child transactions. Those are not included in the breakdown as well. |
Thanks! I'll make some additions to the Transaction detail page to display a text to explain this explicitly to the user. |
Updated the screenshots and GIF in the description reflecting the minor additions to the Transaction detail page, as discussed above. FYI @nehaduggal - added the copy |
@makwarth could we get some feedback from you? Do you think the tooltips do a good enough job of explaining the differences between total self-time and duration in async scenarios? |
Design update I've updated the screens to reflect many of the feedback and changes proposed through multiple feedback sessions in the workgroup (incl. @makwarth). Here's a "breakdown" of the changes and additions to the UI elements;
|
nice! I wonder if we should start without "span time (avg)" in the breakdown header and counts in the popover? The use-case they solve isn't very common IMO and it adds significant "noise" in the design. I also think we don't need to show the "type" when we're showing "subtype", e.g. we can just show "postgresql" and not "db.postgresql" IMO. |
sorting: I think i'd rather have them sorted alphabetically. "app" will likely be first still and with alphabetical sorting they will move around much less. As an example: For a specific service, you might be working to reduce the time spent in "template". When you succeed, it moves around and suddenly it takes more time to find what you're looking for in the header |
🤦♂ |
Thanks for the feedback @roncohen 👍
SGTM
True, only meant to make it explicit in any case. DB's are easy to decode, but maybe not so with external or template subtypes. But it's a thing we can always iterate on later if the feedback is there. Will remove for the 1st iteration.
Feels a little strange not to sort by % if |
Looks good @formgeist ! I really like the new KPI element in the panels. Sorting alphabetically has the advantage of being easier to compare across transaction groups. (Most transactions will likely have similar span types). I agree it's a concern if we high important types though. Maybe we don't hide them, but create an extra row? |
Makes sense, I probably just have to see it in action.
Yeah, we can certainly do that as a start. |
Based on the feedback last week, I've updated the designs in the description above. I suppose we're ready to move this into implementation issues. @sqren @felixbarny Would it make sense to do a sync later this week before I make those issues? |
Summary
Adds a chart which breaks down the transaction time by the
span.type
(db, template, etc) to the service details page and the transaction details page. I'm aware that there's basically no difference between the trace group view and the transaction group view. The MVP does not break down the entire trace but only the root transaction. In upcoming iterations, we can improve that but for now, it should be good enough. There should be a tooltip which explains that, next to a beta marker.As we already have a graph for the Transaction duration, this graph should not show the duration but rather the percentage. Especially for spikey response times, it makes it easier to get an overview of the relative contribution to response per
span.type
. By hovering over the breakdown graph and looking at the tooltips from the transaction duration graph, you can still see the total execution time at that particular time.There is also a special
transaction
value forspan.type
which is the time which can't be explained by direct child spans of the transaction (the transaction'sself_time
). The UI might relabel this special value to "other", "app", "JVM" or similar.It would be nice if the tooltips for the breakdown would not only show the percentage, but also the average count and average time per span type. This tells users that a particular transaction has 42
db
calls on average and that each takes 420 ms on average, for example.In further iterations, the breakdown might include timings information from asynchronously running threads. That implies that the total time per type may exceed the transaction's duration. The question is whether we should still stack up to 100% (defining 100% as the sum of all self-times per type) or if the graph should go over 100% (defining 100% as transaction duration) in this case.
The graph should also gracefully handle the case if there is no breakdown data available. Either by displaying something like "no data" or by just not showing the graph. Most likely, not all agents will support the breakdown when this feature is first released.
On query bar integration:
The query bar can be used to filter by
transaction.name
,transaction.type
or any othermetadata
, likeservice.name
,host.hostname
etc. If filtered by a specifictag
/label
oruser.id
, the graph would just be empty.Solution
Designs
The breakdown chart will be added to the Transactions overview and detail pages. We're adding it next to the other main graphs above the list and timeline components.
Marvel prototype
Transactions overview
Example of the collapsed chart component that summarizes the avg. across the time range for all service transactions
Uncollapsed state to display the timeseries graph along with tooltip
Transaction detail
Example of the collapsed chart component summarizing the average for that particular transaction group
Tasks
Chart panel
EuiBetaBadge
by the chart titleBreakdown chart
type
legend colour thesubtype
(if available) as to group them. Only display thesubtype
value as label, i.e. "db.elasticsearch" = "elasticsearch".Stats legend
type
legend colour thesubtype
(if available) as to group them.The text was updated successfully, but these errors were encountered: