Release Manager dashboard
Right now we have several ChatOps commands that we run regularly to check the state of things:
auto_deploy status
mirror status
release status
These post handy messages into Slack with the state of various release-related things. However, these have two major problems:
- They're ephemeral. They represent a moment in time and if something might have changed, you need to run them again.
- They're manual. You have to type them in.
I want a dashboard I can go to that has all the release-related information that a release manager might need in their day-to-day responsibilities, updated in near-real time, all at a glance.
Outline
We have a goal of dogfooding the Prometheus integration and GitLab Dashboards (e.g., https://gitlab.com/gitlab-com/dashboards-gitlab-com/-/tree/master).
To start, we'd like to get information into Prometheus. As there are currently no exporters for any of the information we want to scrape, we'll likely need to rely on a pushgateway.
Views
These are essentially "widgets" in whatever solution we end up with. Each provides a discrete piece of information.
Release pressure
How many Pick into
MRs are merged and waiting for picking, in order to help us determine when a patch release is warranted.
Time since last deploy to {environment}
How long has it been since we deployed to staging, canary, production?
Shortcuts
Up-to-date links to any current patch release, monthly release, security release issues.
View | Existing Tool | Source | Updates | Issue |
---|---|---|---|---|
Mirror status | ChatOps | GitLab API | Periodic | #883 (closed) |
Release pressure | None | GitLab API | Periodic / On-demand? | #924 (closed) |
Auto-deploy pressure | None | GitLab API | Periodic | #887 (closed) |
Time since deploy | None | Chef (?) | Real-time | |
Sentry | None | Sentry API | Periodic / On-demand? | #886 (closed) |
Shortcuts | release-tools (foundation) | GitLab API | Push |