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
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.
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.
- 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
- 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