VSD - [BE] Calculate DORA Performers score per project
Overview
In the new "DORA Performers score" widget, we plan to display a breakdown of the DORA score - (High/Medium/Low) so that Exec can understand the organization DORA health top to bottom.
Problem
Currently, the DORA score is not calculated.
Proposal
- Adding DORA score calculation per project (for production environment of given project). Groups are out of scope for this issue.
- Calculate the DORA score monthly, no need for real-time results.
- Add a new batch processing for the score calculation. ( similar process as we have for DevOps Adoption?).
- Add a new API to query the score value.
👉 #411537 (closed) - GitLab Ultimate only.
- DORA score definition:
DORA 2022 Performers score definition:
- For DF: when DF <
1
then "Low", when DF >=30
then "High", else "Medium". - For LT4C: when LT4C >
30 days
then "Low", when LT4C <=7 days
then "High", else "Medium". - For TtRS: when TtRS >
7 days
then "Low", when TtRS <=1 day
then "High", else "Medium". - For CFR: when CFR >
45%
then "Low", when CFR <=15%
then "High", else "Medium".
The metrics are aggregate monthly:
Name | Measure values |
---|---|
DF | Deployments per month |
LTfC | Median per month |
TtRS | Median per month |
CFR | Average Rate per month |
GraphQL API structure suggestion
project('gitlab-org/gitlab') {
doraScores(from: '2023-01-01', to: '2023-04-01') {
nodes {
date
deploymentFrequency # low/medium/high/null
leadTimeForChanges
timeToRestoreService
changeFailureRate
}
}
}
- Don't forget to make it
alpha
- It should be available for ultimate only
- Please apply lookahead since VSD will query these scores for many projects.
- I think we can limit
from
andto
to be 6 months max - Data for current month will be incomplete (since it's current month) so FE will have to adjust on that.
Related information
And to this comment.
Edited by charlie ablett