Code Monkey home page Code Monkey logo

automated-dora-metrics's Introduction

Automated DORA & Delivery Metrics

A tool to provide the ability to generate automated DORA and delivery metrics for your every release.


Expert teams of digital product strategists, developers, and designers.

We’re always looking for people who value their work, so come and join us. We are hiring!


  • This repository demonstrates the power of automation in generating DORA and delivery metrics for your software releases. By utilizing the provided scripts and tools
  • You can streamline the process of calculating and recording metrics for your projects.
  • Once the metrics are generated, you can seamlessly push them to πŸ“£ Compass to keep track πŸ“ of your custom metrics effortlessly by following our instructions.
  • We have hosted a docker image here

Metrics Included

Including this in your CI pipeline will automatically uncover detailed insights about your releases, and delivery efficiency. The following metrics will be automatically calculated per release

  • total number of releases - feature, bugfix, and hotfix release breakdown
  • average features, bugs & hotfixes per release
  • Hotfixes per release
  • Bugs per feature
  • Bug release ratio

Getting started

For getting straight into commands, here's how :-

  • βž• Generate metrics for recent release
docker run --rm
-v "$(pwd)/metrics":/app/metrics
 <!-- attach metrics dir of container host as an output dir -->
-v "$(pwd)/.git":/app/.git
 <!-- attach .git dir of the container host -->
abhimishraa/dorametrics:latest --calculate-metrics
<!-- must be used without -e flag -->
  • βž• Generate metrics for your previous releases / pre-existing repository

Considering your repository had followed strict git flow as stated here

docker run --rm
-v "$(pwd)/metrics":/app/metrics
 <!-- attach metrics dir of container host as an output dir -->
-v "$(pwd)/.git":/app/.git
 <!-- attach .git dir of the container host -->
abhimishraa/dorametrics:latest --calculate-metrics -e True

  • If your parent / production branch is not main, specify it manually :-
docker run --rm -v $(pwd)/metrics:/app/metrics abhimishraa/dorametrics:latest --calculate-metrics -p <branch-name>
  • πŸ“£ To notify Jira Compass with the generated metrics:
docker run --rm \
    -e COMPASS_USER_EMAIL=$COMPASS_USER_EMAIL \
    -e COMPASS_USER_API_KEY=$COMPASS_USER_API_KEY \
    -e COMPASS_METRICS_BASE_URL=$COMPASS_METRICS_BASE_URL \
    -v $(pwd):/app abhimishraa/dorametrics:latest \
    --notify-compass "metrics/data.yaml" "metrics/target-metrics.yaml"
  • For getting help from the metrics tool:-
docker run --rm abhimishraa/dorametrics:latest --calculate-metrics --help
  • For more, please check out our detailed documentation to understand in depth concepts.

Sample CI Pipeline to integrate into your production release workflow can be found here

Structure of target-metrics.yaml

The target-metrics.yaml file defines the metrics you want to calculate and track. Customize the metrics and their associated IDs according to your project's needs.

The structure should be similar to what we have here

πŸ›‘ Creating a Pull request πŸ›‘ :-

  • The branch name must correspond to the ticket number such as <type-of-ticket>/<Proj>-<TickNumber>
  • For example:-
 `feat/<PROJ>-1`
 `chore/<PROJ>-6`
 `docs/<PROJ>-7`
 `bug/<PROJ>-2`
 `fix/<PROJ>-5`
 `bugfix/<PROJ>-2`
 `hotfix/<PROJ>-3`

πŸ“ Things to note while importing to an existing Git repository and limitations :-

1 data.yaml
  • Running this tool to an existing git repository (-e True flag) will list down all the merges done into your main branch and the count of it will be considered as the total number of releases which we can see in the total_releases section of the file itself.
2 release.yaml
  • Running this tool to an existing git repository (-e True flag) the time when you execute the --calculate-metrics command marks the initiation of the first release in this sequence.
  • Note πŸ›‘:- although we do get the total_releases in data.yaml, the tool does not has the ability to list break down every release (merge into main) branch and hence the release number in the list order will start from 1

  • Important Note πŸ›‘: Although there are some limitations while integrating this to an existing git repository as this tool was built with the focus of calculating the metrics for next release cycles that come into a git branch (main), but it's crucial to recognize that correct metrics will be generated for all subsequent releases. The tool will seamlessly calculate and provide accurate metrics for your future releases. It's a powerful step toward enhancing your project's insights and tracking its progress effectively. Happy measuring! πŸ“ŠπŸš€

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.