Note This repository was created for the Master Thesis titled "Automated DORA Metrics: A Case Study" at FHNW, Switzerland. Currently, we only provide the backend to calculate DORA metrics based on DevOps tooling data. However, all metrics can be computed using our API.
dora
provides a backend to track the four DORA metrics in a completely automated manner. Thus, we provide the following metrics:
- Deployment Frequency (DF)
- Lead-Time for Changes (LTFC)
- Change-Failure Rate (CFR)
- Mean-Time to Restore (MTTR)
We currently support the following DevOps integrations:
- Version Control: Gitlab
- CICD: Gitlab CICD
- Telemetry: Prometheus
If you're interested to use it for your team, but need us to support different DevOps technologies, please feel free to create a ticket and tell us!
If you want to run dora
locally, we assume you meet the following requirements installed:
- Go >1.20
- Docker
A typical workflow using dora
to calculate the DORA metrics is visualized below.
The implemented concepts to compute the DORA metrics are also visualized below.
During development, we suggest you using the docker-compose
configuration given in this repository.
However, if you want to use kind
, we suggest using the following configuration when creating a new cluster:
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 32042
hostPort: 32042
- role: worker
You can run dora
using just a few commands!
To run dora
locally, first populate the .env
:
make copy-empty-env
Inside the .env
you only need to add a bearer-token for Gitlab to GITLAB_BEARER
.
Warning For production purposes, please ennsure that you use different credentials as the once proposed for a local test environment!
Next, build and run the backend alongside a MongoDB instance:
make compose
Inspect the data in MongoDB:
make mongo-sh
If you need to start and stop the MongoDB manually:
make mongo-run
make mongo-stop
If you want to run the tests one by one, you can use:
make mongo-run
This creates a new MongoDB instance within a Docker container, so that you can run the integration tests against a database.
However, if you want to run all test, just use:
make tests
This command creates a temporary MongoDB instance, runs all test and destroys the instance afterwards.
dora
is an open-source project. Please check the license for more information.
You can find more information on the DORA metrics here: