-
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
[Fleet] Improve pagination experience for >10k agents #91562
Comments
Pinging @elastic/fleet (Team:Fleet) |
Actually the error already exists with saved objects |
I think we have fixed this issue for something else @jen-huang ? |
I think this is a known limitation? In the UI we display |
The 10k limitation is nothing new, there is nothing easily done on our side. I will put that issue on the back burner until we have a better proposal from kibana platform. @mostlyjason Just to makes sure you know this. |
We had a discussion around tables and too many entries with @jasonrhodes and there are alternative options here. Maybe we need to change the design? What is the use case that a user would jump to page 502? Perhaps we only need to know the total number and allow the users to browse through the first 10 pages, have better query etc.? |
Just thought I'd chime in with an update from the Core team: We did recently merge #89915 which provides a way to page through >10k saved objects. The main difference is that using Point-In-Time with If you plan to go this route, you may want to wait until #91175 lands, as that will provide an even easier mechanism for paging (expecting a PR for that to be up in the coming days). There are usage examples in the linked PR, but TLDR it will probably look something like this: const findOptions: SavedObjectsFindOptions = {
type: 'visualization',
search: 'foo*',
perPage: 100,
};
const finder = savedObjectsClient.createPointInTimeFinder({ findOptions });
const responses: SavedObjectFindResponse[] = [];
for await (const response of finder.find()) {
responses.push(...response);
if (doneSearching) {
await finder.close();
}
} |
Relevant conversation here: elastic/eui#4506 @lukeelmers do you mind weighing in on that EUI issue too? I think many of us are coming across similar problems at the same time. |
@juliaElastic For pagination, I think we should use a fresh PIT when the user is on page 1 each time the page refreshes. If the user starts going through the pages, maybe we should stop refreshing the PIT and reuse the last one. So essentially new agents will only show up if the user is on page 1, all other pages will use the same PIT and get the same view. |
@joshdover Thanks, this is a good idea for making sure the user sees a consistent view when paginating. Though it might be problematic if the user leaves the view on page 2, 3, etc. and doesn't see the list refreshing again. However, this doesn't solve the current issue of users not able to paginate to pages > 501.
I think this is quite complex to implement, especially changing the UI pagination to customize page display and behavior of next/back buttons. Alternatively, we could limit the page display to 500 and suggest users to use filtering and sorting to reduce the dataset. What do you think? If we decide to implement the more complex option, I think we would have to re-estimate the effort as it might delay the other scalability work. cc @jen-huang |
@juliaElastic i tend to agree with you. I would say even that it's a human limitation to flick through more than 20 pages. Limiting to 500 is ok IMO. Also if we can move forward with scale testing and this becomes an issue we can revisit. At higher scales operations are more likely done via API. In the UI sorting and filtering to reduce the number of items to look at. |
@jen-huang @kpollich should we close this issue as we decided to limit agent list to 500 pages for now and defer the support for more than 500 pages? |
Hi @juliaElastic
Build details: cc: @joshdover |
Hi Team Observations:
Build details: Hence, we are marking it as QA: Validated. |
Description
Pagination for agent is broken after 10k (or whatever the index.max_result_window setting is for the cluster) agents. Elasticsearch offers various ways to paginate search results, can we use one of them to improve this experience?: https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html
Tasks
How to reproduce
enroll 10k agents try to navigate to the last page of the agent listing
the details of the error
The text was updated successfully, but these errors were encountered: