dora

command module
v0.0.0-...-1e95ff8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2023 License: MIT Imports: 8 Imported by: 0

README

dora - fully automated DORA metrics

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!

Requirements

If you want to run dora locally, we assume you meet the following requirements installed:

  • Go >1.20
  • Docker

Overview

A typical workflow using dora to calculate the DORA metrics is visualized below.

Overview

The implemented concepts to compute the DORA metrics are also visualized below.

Concepts

Development

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

Run it

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
Test it

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.

License

dora is an open-source project. Please check the license for more information.

Additional Sources

You can find more information on the DORA metrics here:

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL