[Synthetics] Overview page performance issues with large number of monitors #183622
Labels
bug
Fixes for quality problems that affect the customer experience
needs-refinement
A reason and acceptance criteria need to be defined for this issue
Synthetics
Team:obs-ux-management
Observability Management User Experience Team
An issue was raised in this SDH that Overview page with 80 monitors becomes slow and unresponsive during auto-updates.
Profiling showed that every page render takes ~5 seconds and blocks the main thread.
Looking at the code, I did not find any specific bottleneck, like a particularly slow component or helper function, but I've noticed that the whole
<OverviewPage>
component also re-renders every time a child monitor component<OverviewGridItem>
gets rendered, which for a page with 80 monitors results in ~100 re-renders of the whole page. And this seems to be the core issue.Redux global store might be one of the issues here as
<OverviewGridItem>
and a few other nested components and hooks call Reduxdispatch()
while rendering which causes the change in the global state and triggers the whole page re-render. We might need to re-think the store architecture and isolate state to nested components in some cases to improve performance.Another way to mitigate the issue a bit could be to use useTransition hook to make the UI more responsive during state updates, but that hook is part of React 18 and Kibana is currently on 17.
The text was updated successfully, but these errors were encountered: