Support pagination in log explorer
Problem to solve
Log explorer is limited to 500 lines, when a user selects a time range (any time range) it will return only 500 lines, with this limitation it doesn't really matter what is the time range a user selects we'll still see the same results
Intended users
Further details
The desired user experience is that if a user selects a time range we should display all logs for that time range only. and if the user would like to go beyond the filtered time range, the user would need to select a different range to do so.
Proposal
We should support pagination in the backend in order to allow the user to scroll freely across the selected time range using an Infinite scroll pattern.
We are displaying logs, so the most latest information is displayed at the bottom. So the "infinite scroll" is reverted to display the last items first while scrolling to see the items higher up loads more items.
This pattern is similar scrolling for more chat messages such as Slack or SMS.
Technical Proposal
- backend Expose elasticsearch pagination parameters following Gitlab pagination pattern.
- frontend Implement a "reverse" inifinite scroll, this might require a contribution to Gitlab UI's infinite scroll https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/base-infinite-scroll--default
Additional consideration
- We decided to keep the current experience on showing the latest log entry at the bottom of the screen, scrolling upward if the user want to go back in time.
- When scrolling downward we noticed that some of the controls and the notification message of installing Elasticsearch disappear. we should address this with a separate issue