Create generic metrics dashboard for each stage group
Part of gitlab-com/gl-infra/scalability#664, following iteration of !2999 (merged).
This merge request's main focus is to implement a script to create generic metrics dashboard for each stage group. All the dashboards are placed in dashboards/staged-groups folder with the name <group-key>.dashboard.jsonnet. The script is located at scripts/update_stage_groups_dashboards.rb. It compiles the stage group mapping file to get the list of up-to-date groups. Then, it compares the group list with the dashboards in the dashboards/stage-groups folder to generate new dashboards for new groups and remove the untouched dashboards which are not mentioned in the mapping file. As the generic dashboard is organized to encourage extension and customization, the script skips the dashboards which are already modified.
This merge request also updates scripts/update-stage-groups-feature-categories to sanitize and convert the group keys inside the mapping file into group-key format. As the keys are used to query feature categories, this conversion is safe.
I generated some sample dashboards, and tested with test-dashboard script:
- stage-groups: Group dashboard: manage (Compliance)
- stage-groups: Group dashboard: manage (Access)
- stage-groups: Group dashboard: plan (Project Management)
- stage-groups: Group dashboard: create (Code Review)
This script will get run as part of the monthly stage-group check, right after stage group mapping sync. As a beginning, I attach 43 generic dashboards from the last updated stage group file.
