菜单
Grafana Cloud

为 Grafana OnCall 的 Jira 集成

备注

此集成仅适用于 Grafana Cloud。

此 Jira 集成为 Grafana OnCall 处理来自 Jira Webhook 的事件。通过可定制的警报模板,集成提供分组、自动确认和自动解决逻辑。

配置 Grafana OnCall 以接收来自 Jira 的警报

  1. 集成 选项卡中,点击 + 新集成
  2. 从可用集成列表中选择 Jira
  3. 输入集成的名称和描述,点击 创建
  4. 将打开一个新页面,显示集成详细信息。从 HTTP 端点 部分复制 OnCall 集成 URL。您配置 Jira 时需要它。

配置 Jira 以向 Grafana OnCall 发送警报

在 Jira 中创建一个新的 Webhook 连接,使用上面的集成 URL 将事件发送到 Grafana OnCall。

有关如何创建和管理 Webhook 的更多信息,请参阅 Jira 文档

在 Jira 中创建 Webhook 时,选择以下事件发送到 Grafana OnCall

  1. 问题 - 创建
  2. 问题 - 更新
  3. 问题 - 删除

设置连接后,您可以通过在 Jira 中创建新问题来测试它。您应该在 Grafana OnCall 中看到一个新的警报组。

分组、自动确认和自动解决

Grafana OnCall 为 Jira 集成提供分组、自动确认和自动解决逻辑

  • 从问题事件创建的警报按问题键分组
  • 当问题状态设置为“工作中”时,自动确认警报组
  • 当问题关闭或删除时,自动解决警报组

要自定义此行为,请考虑修改集成设置中的警报模板。

配置 Grafana OnCall 以向 Jira 发送数据

Grafana OnCall 可以通过出站 Webhook自动在 Jira 中创建和解决问题。本指南提供了常见用例的示例 webhook 配置,以及如何设置 Jira 用户以便 Grafana OnCall 使用的信息。

先决条件

  1. 在 Jira 中创建一个新用户以供 Grafana OnCall 使用。为该用户获取 API 令牌,这些凭证将用于与 Jira REST API 通信。
  2. 确保该用户具有创建和更新 Jira 问题的适当权限。

在 Jira 中创建问题

以下步骤描述了如何在 Grafana OnCall 中创建一个出站 Webhook,它将允许自动从 Grafana OnCall 警报组创建 Jira 问题。

在 Grafana OnCall 中创建一个新的出站 Webhook,并按以下方式配置它

  • 触发类型:警报组创建

  • 集成:选择将触发 Webhook 的集成

  • HTTP 方法:POST

  • Webhook URL

text
https://<INSTANCE>.atlassian.net/rest/api/2/issue

<INSTANCE> 替换为您的 Jira 实例。

使用以下 JSON 模板作为 Webhook 数据

json
{
  "fields": {
    "project": {
      "key": "<PROJECT_KEY>"
    },
    "issuetype": {
      "name": "[System] Incident"
    },
    "summary": "{{alert_group.title}}",
    "description": "This issue is created automatically by Grafana OnCall. Alert group {{alert_group.id}}: {{alert_group.permalinks.web}}"
  }
}

<PROJECT_KEY> 替换为 Jira 中项目的键。

注意:您可能需要根据您的 Jira 实例配置和用例使用不同的 issuetype.name

在 Jira 中解决问题

以下步骤描述了如何在 Grafana OnCall 中创建一个出站 Webhook,它将允许在 Grafana OnCall 中解决警报组时自动解决 Jira 问题。

  • 触发类型:已解决

  • 集成:选择将触发 Webhook 的集成

  • HTTP 方法:POST

  • Webhook URL

text
https://<INSTANCE>.atlassian.net/rest/api/2/issue/{{responses.<WEBHOOK_ID>.key}}/transitions

<INSTANCE> 替换为您的 Jira 实例,将 <WEBHOOK_ID> 替换为用于创建问题的 Webhook的 ID。

使用以下 JSON 模板作为 Webhook 数据

json
{
  "transition": {
    "id": "<TRANSITION_ID>"
  },
  "fields": {
    "resolution": {
      "name": "Done"
    }
  },
  "update": {
    "comment": [
      {
        "add": {
          "body": "Resolved by Grafana OnCall.",
          "public": false
        }
      }
    ]
  }
}

<TRANSITION_ID> 替换为特定于您的 Jira 实例的转换 ID。有关如何在 Jira UI 中找到转换 ID 的更多信息,请参阅此处,或使用REST API 端点获取可用转换的列表。

高级用法

上面的示例描述了如何创建 Grafana OnCall 中的出站 Webhook,允许自动在 Jira 中创建和解决问题。

请考虑修改示例模板以适应您的用例(例如,包含有关警报组的信息)。有关可用的模板变量和 Webhook 配置的更多信息,请参阅出站 Webhook 文档

有关 Jira REST API 的更多信息,请参阅Jira REST API 文档