blob: 690c4ef2b6096d4cb71a56dc8c42785df542512a [file] [view]
---
title: "DORA - Mean Time to Restore Service"
description: >
DORA - Mean Time to Restore Service
sidebar_position: 20
---
## What is this metric?
The time to restore service after service incidents, rollbacks, or any type of production failure happened.
## Why is it important?
This metric is essential to measure the disaster control capability of your team and the robustness of the software.
## Which dashboard(s) does it exist in
N/A
## How is it calculated?
MTTR = Total [incident age](./IncidentAge.md) (in hours)/number of incidents.
If you have three incidents that happened in the given data range, one lasting 1 hour, one lasting 2 hours and one lasting 3 hours. Your MTTR will be: (1 + 2 + 3) / 3 = 2 hours.
Below are the benchmarks for different development teams:
| Groups | Benchmarks |
| -----------------| -------------------------------------|
| Elite performers | Less than one hour |
| High performers | Less one day |
| Medium performers| Between one day and one week |
| Low performers | More than six months |
<p><i>Source: 2021 Accelerate State of DevOps, Google</i></p>
<b>Data Sources Required</b>
This metric relies on:
- `Deployments` collected in one of the following ways:
- Open APIs of Jenkins, GitLab, GitHub, etc.
- Webhook for general CI tools.
- Releases and PR/MRs from GitHub, GitLab APIs, etc.
- `Incidents` collected in one of the following ways:
- Issue tracking tools such as Jira, TAPD, GitHub, etc.
- Bug or Service Monitoring tools such as PagerDuty, Sentry, etc.
- CI pipelines that marked the 'failed' deployments.
<b>Transformation Rules Required</b>
This metric relies on:
- Deployment configuration in Jenkins, GitLab or GitHub transformation rules to let DevLake know what CI builds/jobs can be regarded as `Deployments`.
- Incident configuration in Jira, GitHub or TAPD transformation rules to let DevLake know what CI builds/jobs can be regarded as `Incidents`.
## How to improve?
- Use automated tools to quickly report failure
- Prioritize recovery when a failure happens
- Establish a go-to action plan to respond to failures immediately
- Reduce the deployment time for failure-fixing