-
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
[RAC] Alerts view in Observability UI performance #110758
Comments
Pinging @elastic/security-threat-hunting (Team:Threat Hunting) |
Pinging @elastic/logs-metrics-ui (Team:logs-metrics-ui) |
🤔 As a first guess this likely comes down to the way the table and cells are rendered. We should investigate the causes for superfluous re-renders and reduce them using memoization and similar optimizations. |
What browser in which version were you using when making the recordings? |
@sqren thanks for reproducing. We'll probably have to dig into how the t-grid performs state management internally. |
I tested on Chrome, I added the version to the issue description. |
Just popping in to note that @XavierM and @andrew-goldstein have been meeting with @chandlerprall since last week on this issue. I'm not certain about timing, but it's even more prevalent in the Security grid because of the larger amount of cells and actions they render. My understanding is that there's optimizations to be made around Beyond optimizations around the components, the general advice is:
The only quick "fix" I've seen with the implementation as it stands is to limit pagination to 10 rows. |
(Likely over-communicating, sorry if so) Beyond fixing the bad data re-renders and enabling virtualization again, keeping the amount of rows and columns down was really key at my last job (we built a table like this for other teams). To do that we needed:
@snide's comments feel all too familiar! |
@snide thanks for the cross-team information. I assume any optimizations made by the security team in the shared underlying t-grid should benefit us too. |
The EUI team is tracking the @chandlerprall joined the Threat Hunting team meeting yesterday, and we agreed to the following plan:
|
The proposed solution, for now, is to set rows per page to 10 and remove the selector for rows per page underneath the alerts table. |
Started looking at this. If I understand the current code I'll need to find a way to pass in the itemsPerPage setting instead of the itemsPerPageOptions setting. Will come back to this tomorrow! |
@miltonhultgren, FYI @chandlerprall just opened the following PR: [EuiDataGrid] resolve performance issues when interacting with a large grid #5136 to resolve the issues above: The description of the PR has some much-happier looking perf charts: and (also in the PR description), some promising results when tested in the Security Solution, (which as noted above has both more columns and more cell actions):
|
Just a reminder for those following those EUI PRs. The following will need to happen:
Upgrading EUI in Kibana is never straightforward and we all know how fast Kibana CI runs. Data Grid is used in more places than just RAC so we'll need to test in Kibana. We also have a holiday this weekend. Keep that context in mind. |
We can skip that step, getting EUI's backport release straight into the 7.15 branch. There are jest snapshot changes to expect, but otherwise these two should drop in cleanly. Assuming the PR (elastic/eui#5136) merges quickly, I'll cut the backport release tomorrow & immediately begin upgrading Kibana's 7.15 branch. |
Wow, sounds like some amazing progress! If those results hold true, we should be safe in going back to the preferred values for rows per page and keeping the selector, correct? |
We'll definitely want to test the end result in a complete setup - Dave's suggestions around enabling virtualization may still be needed. The changes so far resolve what has been observed as the bottlenecks, but it's possible we've only dug a hole large enough to hit another layer. However, based on @kqualters-elastic's initial explorations I don't expect another set of immediate concerns. |
I opened #111100, how do we want to handle this? |
EUI upgrade PR is now up at #111199 , letting CI flag affected snapshots then I will update those & take out of draft. |
eui upgrade in |
@katrin-freihofner Can this issue be closed after the EUI upgrades? |
@miltonhultgren is edge showing the latest version? |
(I'm guessing edge is the name of a cluster?) EDIT: @paulb-elastic sent me some links to the cluster, I'll check tomorrow on the performance as well as which EUI version is running and get back on this! |
@katrin-freihofner I just checked the edge cluster and I see the same performance issues, selecting a row takes more than a second to update the UI and the cell actions have a delay before they are displayed. This isn't visible when only showing 10 rows. As far as I can tell, edge is built from master which has version 38.0.1 of EUI which should include the fixes by @chandlerprall @elastic/eui-design can we get some help in investigating this further? It could be something we're doing wrong on our side that isn't visible in the Security side. |
is that https://edge-oblt.elastic.dev/ ? I don't think has been updated in a bit, looks like a ton of calls are still being made to the problematic isUntouchable function, which should not be happening if it's updated. |
@kqualters-elastic That's the correct URL. I'll ask around to see if/when it was updated and get back |
Based on
Which should include the fixes from this PR #111199 Let me try to verify also from my local master copy with the edge cluster data (CCS for the win) |
37.6.0 is missing both fix commits https://github.com/elastic/eui/blob/v37.6.0/src/components/datagrid/body/data_grid_body.tsx |
I see, that would explain it then. I was confused by the linked PR since it mentions version 37.1.3. I've also verified that locally from I still feel like there is some delays in responsiveness when selecting rows: When changing the page from 50 to 10 rows: But these can likely be covered in another issue. |
I'm going to close this issue since it looks like the main problem here is resolved. @miltonhultgren if you can create a separate issue for what you describe in your last comment and assign it to Actionable Observability, that'd be great. Thanks! |
...probably also affects Security
Kibana version:
Internal edge cluster; Chrome Version 92.0.4515.159 on Mac
Description of the problem including expected versus actual behavior:
There is a noticeable lag when interacting with the UI.
This video shows that when scrolling and hovering one of the alerts, the hover state takes ~2 sec to show up.
This video shows a lag when selecting multiple alerts.
This has a negative effect on the usability of this view!
Steps to reproduce:
Proposed solution for 7.15
Set rows per page to 10. Remove the selector for rows per page underneath the alerts table.
The text was updated successfully, but these errors were encountered: