This document describes all things about DORA, why and how to implement DORA metrics with Apache DevLake.
Created six years ago by a team of researchers, DORA stands for “DevOps Research & Assessment” and is the answer to years of research, having examined thousands of teams, seeking a reliable and actionable approach to understanding the performance of software development teams.
DORA has since become a standardized framework focused on the stability and velocity of development processes, one that avoids the more controversial aspects of productivity measurements and individual performance metrics.
There are two key clusters of data inside DORA: Velocity and Stability. The DORA framework is focused on keeping these two in context with each other, as a whole, rather than as independent variables, making the data more challenging to misinterpret or abuse.
Within velocity are two core metrics:
Naturally, if you are pushing a consistently high tempo, you also want to ensure that the work that is being delivered is reliable, and that downtime and failures are readily recoverable.
Stability is composed of two core metrics:

To make DORA even more actionable, there are some well-established benchmarks providing a simple lens to determine if you are performing at “Elite”, “High”, “Medium”, or “Low” levels.
DORA metrics help a team or project measure and improve software development practices to continuously deliver reliable products with user values.
It's easy to set up DORA metrics in DevLake. Usually, you can finish it in few steps:
deployments and incidents
DevLake now supports Jenkins, GitHub Action and GitLabCI as data sources for deployments data; Jira, GitHub issues and TAPD as the sources for incidents data; Github PRs, GitLab MRs as the sources for changes data. You can simply follow the instructions in the Blueprint to set them up.
However, if your CI/CD tools are not listed on the supported data sources page, DevLake provides incoming webhooks to push your deployments data to DevLake. The webhook configuration doc can be found here.
The following example shows the steps that a team needs to take to configure DORA metrics in DevLake. This team uses GitHub Action and CircleCI to do deployments, GitHub PRs as changes and Jira to manage incidents.
Prerequesites: please make sure you have set up Apache DevLake. If you have not done so, you can follow the instructions here.
blueprintVisit the config-ui at http://localhost:4000
Create a blueprint, let's name it “Blueprint for DORA”, add a Jira and a GitHub connection. Click Next Step 
Select Jira boards and GitHub repos to collect, click Next Step 
Click Add Transformations to configure for DORA metrics 
To make it simple, fields with a
label are DORA-related configurations for every data source. Via these fields, you can define what are “incidents” and “deployments” for each data source (see image below). After all the data connections have been configured, click Next Step
.
Choose sync frequency, click ‘Save and Run Now’ to start data collection. The duration varies along with the data source and the volume of data to collect. 
webhookIn the meantime of collecting Jira and GitHub data via blueprint, please go to the data connections page. Click “Incoming Issue/Deployment Webhook” to import deployments from CircleCI. 
Click ‘Issue/Deployment Incoming Webhook’, create a webhook named “CircleCI deployment”. You can see the generated post url. 
Visit your CircleCI in a new tab. Go to the pipelines page. Click Configuration File 
Add the Deployment webhook urls in Step 8 to your config.yml.
https://ui-my-svr02.demo.devlake.io/api/plugins/webhook/:webhook_id/cicd_tasks to trigger after the ‘deployment’ job is finishedhttps://ui-my-svr02.demo.devlake.io/api/plugins/webhook/:webhook_id/cicd_pipeline/:pipelineName/finish to trigger after all CI jobs are finished 
Run CircleCI workflow, you can see deployments data in table.cicd_tasks in DevLake's database. 
View the built-in DORA dashboard
Note: If you have any concern about the steps above, please read blueprint manuals (step 1-6) and webhook manuals (step 7-12) if you have any problems.
:tada::tada::tada: Congratulations! Now you have your own DORA dashboard.