UI design for Elasticsearch administration
There is a need for administering indexing and other Elasticsearch related operations through the web interface. Currently the UX proposals are spread out in individual issues. e.g.:
- https://gitlab.com/gitlab-org/gitlab-ee/issues/11206
- https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/11408#note_163155393
- &428 (closed).
Since the possible UX solutions for each issue can affect each other, so it is better to centralize UX discussion for all these issues for a more coherent design.
Basics
For those who are unfamiliar with Elasticsearch, here is a rough flow chart of what actions the admins need to take (maybe incomplete):
The chart is for existing functionalities. The newer "multiple schema versions (for zero downtime deployment)" is marked as "???" for more explorations.
Scenarios
(feel free to add/modify the table)
| scenario | When "Elasticsearch indexing" is enabled (#5299 (closed) (closed)) | When ES got out of sync with actual data (#5299 (closed) (closed)) | When new version is available (due to schema changes), we need to setup the new version (#11206) | Creating a new empty index |
|---|---|---|---|---|
| Needed components | [index everything form]To start indexing all projects (with various settings) | [index everything form]to reindex everything | [empty index form]to create empty index (for new schema) | [empty index form]to create empty index |
| [index everything form]to index all projects (on new schema) | ||||
| [switch read UI]switch to reads(searchings) from new version | ||||
| [stop write UI]stop writes(indexing) to old version |
Options needed for administrations
For indexing form, some options include batch_size, start_id and end_id (similar to rake tasks). Note these are only applicable when limited indexing is off (when we only index a few selected projects/namespaces).
For reset index form, some settings include shard_size.
Mockups
Some quick brainstorming done by Mark, and please don't feel this "table layout" is a must:
https://docs.google.com/spreadsheets/d/1KJmX-bshR5o9xy_ynDBl94TICCSN_YKVadsejuLtVT8/edit?usp=sharing