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):

elastic.svg

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

Edited Jul 12, 2019 by Mark Chao
Assignee Loading
Time tracking Loading