Collect general release metrics and display them on a central dashboard
There are many metrics that we could be collecting that would be interesting for the GitLab community to view for status and updates on the current state of releases.
Related issues
- Send metrics to the push gateway via takeoff - https://gitlab.com/gitlab-org/takeoff/issues/98
- Create a deploy dashboard for takeoff - https://gitlab.com/gitlab-org/takeoff/issues/75
- Prometheus counter for pipeline execution - https://gitlab.com/gitlab-org/gitlab-ce/issues/53157
- Send prometheus metrics for gitlab-qa test runs - gitlab-org/gitlab-qa#345 (closed)
Central Release Dashboard
- Release related metrics
- Versions information deployed to each stage
- Availability / health per stage annotated with release updates
Metrics collected and sent to the push gateway
Metrics for the following, from CI jobs (or takeoff) sent to the pushgateway:
- Release metrics
- Deployments, failures, last run time and duration for each stage
- Merge GitLab CE into EE, failures and duration
- Merge
master
branch intostable
- this is a manual action but perhaps we have some stats on when it was done last and how long it took based on a chatops command?
- Pipeline stats for the
stable
,master
branches of gitlab-ee and gitlab-ce that includes all stages for build, prepare, test, post-test, post-cleanup.- failures
- durations
- last run time
- High level view of gitlab-qa results
Annotate deployments
If we are adding metrics for deployments, it would be also nice to add grafana annotations. I assume the best way to do this will be to interact directly with the grafana api from either the CICD job (or takeoff).
Open questions
- Are there any reason to keep these metrics confidential? Currently prometheus metrics are by default public, unless we setup a different datasource for this.
- Should a central release dashboard also include some view into the health availability of each stage?
Edited by John Jarvis