Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions docs/Configuration/GrafanaIrm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: "Grafana IRM"
sidebar_position: 18
description: Config UI instruction for Grafana IRM
---

Visit Config UI at: `http://localhost:4000`.

## Step 1 - Add Data Connections

### Step 1.1 - Authentication

#### Connection Name

Give your connection a unique name to help you identify it in the future.

#### Endpoint URL

The base URL of your Grafana Cloud stack:
```
https://<your-org-name>.grafana.net/
```
The plugin calls the Grafana IRM API via `/api/plugins/grafana-incident-app/resources/api/v1/incidents`.

#### Token

Paste your Grafana Cloud **Service Account Token** or **API Key** here. The token requires read permissions for incidents (`incidents:read`).

#### Rate Limit (Optional)

By default, DevLake uses 3,600 requests/hour for data collection for Grafana IRM. You can adjust the collection speed by setting up your desirable rate limit.

#### Test and Save Connection

Click `Test Connection`, if the connection is successful, click `Save Connection` to add the connection.

### Step 1.2 - Add Data Scopes

Select the scope for incident collection (by default, `default` organization scope).

Only Grafana IRM incidents will be collected. The data will be stored in the `issues`, `board_issues` and `boards` tables with issue type `INCIDENT`, feeding the DORA change failure rate and failed deployment recovery time (median time to restore service) metrics.

The incident's `created_at` timestamp drives the created date, `updated_at` drives incremental synchronization, and `resolved_at` drives the resolution date. Timestamps are truncated to millisecond precision for deterministic database storage.

Note: the Grafana IRM plugin does not support any scope config.

## Step 2 - Collect Grafana IRM Data in a Project

### Step 2.1 - Create a Project

Collecting Grafana IRM data requires creating a project first.

Navigate to the **Projects** page from the side menu and create a new project.

### Step 2.2 - Add a Grafana IRM Connection

In the project, add the Grafana IRM connection and select its data scopes.

Please note: if you don't see the scope you are looking for, please check if you have added it to the connection first.

### Step 2.3 - Set the Sync Policy (Optional)

There are three settings for Sync Policy:
- Data Time Range: You can select the time range of the data you wish to collect. The default is set to the past six months.
- Sync Frequency: You can choose how often you would like to sync your data in this step by selecting a sync frequency option or enter a cron code to specify your preferred schedule.
- Skip Failed Tasks: sometimes a few tasks may fail in a long pipeline; you can choose to skip them to avoid spending more time in running the pipeline all over again.

### Step 2.4 - Start Data Collection

Click on **Collect Data** to start collecting data for the whole project.

## Troubleshooting

If you run into any problem, please check the [Troubleshooting](/Troubleshooting/Configuration.md) or [create an issue](https://github.com/apache/devlake/issues)
1 change: 1 addition & 0 deletions docs/Overview/SupportedDataSources.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ more plugins. Detailed plugin docs can be found [here](/docs/Plugins).
| PagerDuty | Issue Tracking | Cloud | Available | `pagerduty` | Incremental Sync |
| Opsgenie | Issue Tracking | Cloud | Available | `opsgenie` | Full Refresh (for `users`,`teams`), Incremental Sync (for `issues`) |
| incident.io | Issue Tracking | Cloud | Available | `incidentio` | Full Refresh |
| Grafana IRM (Beta) | Issue Tracking | Cloud | Available | `grafana_irm` | Incremental Sync |
| Feishu (WIP) | Calendar | Cloud | Not Available | `feishu` | Full Refresh |
| AE | Source Code Management | On-prem | Not Available | `ae` | Full Refresh |
| Sonarqube | CODE QUALITY | SonarQube v8.x, v9.x | Available | `sonarqube` | Full Refresh |
Expand Down
20 changes: 20 additions & 0 deletions docs/Plugins/grafana_irm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: "Grafana IRM"
description: >
Grafana IRM Plugin
---

## Summary

This plugin collects incident data from Grafana Cloud Incident Response & Management (IRM), and uses them to compute incident-type DORA metrics. Namely,
* [Median time to restore service](/Metrics/MTTR.md)
* [Change failure rate](/Metrics/CFR.md).
* [Incident Age](/Metrics/IncidentAge.md)

## Supported Versions
Available for Grafana Cloud IRM. Check [this doc](https://devlake.apache.org/docs/Overview/SupportedDataSources#data-sources-and-data-plugins) for more details.


## Configuration
* Configure Grafana IRM via Config UI. See instructions [here](/Configuration/GrafanaIrm.md).
* Configure Grafana IRM via Config UI's [advanced mode](/Configuration/AdvancedMode.md).
Loading