> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Grafana集成

> 通过 webhook 的方式同步 Grafana 告警事件到 Flashduty On-call，实现告警事件自动化降噪处理。

<div className="hide">
  ## 在 Flashduty On-call

  ***

  您可通过以下2种方式，获取一个集成推送地址，任选其一即可。

  ### 使用专属集成

  当您不需要将告警事件路由到不同的协作空间，优先选择此方式，更简单。

  <AccordionGroup>
    <Accordion title="展开">
      1. 进入 Flashduty 控制台，选择 **协作空间**，进入某个空间的详情页面
      2. 选择 **集成数据** tab，点击 **添加一个集成**，进入添加集成页面
      3. 选择 **Grafana** 集成，点击 **保存**，生成卡片。
      4. 点击生成的卡片，可以查看到 **推送地址**，复制备用，完成。
    </Accordion>
  </AccordionGroup>

  ### 使用共享集成

  当您需要根据告警事件的 Payload 信息，将告警路由到不同的协作空间，优先选择此方式。

  <AccordionGroup>
    <Accordion title="展开">
      1. 进入 Flashduty 控制台，选择 **集成中心=>告警事件**，进入集成选择页面。
      2. 选择 **Grafana** 集成：
         * **集成名称**：为当前集成定义一个名称。
      3. 配置默认路由，并选择对应的协作空间（集成创建后可以前往 `路由` 进行更多路由规则的配置）。
      4. 点击 **保存** 后，复制当前页面的新生成的 **推送地址** 备用。
      5. 完成。
    </Accordion>
  </AccordionGroup>
</div>

## 在 Grafana

***

Grafana V4\~V8 版本默认开启 Legacy Alerting 功能，在 V9 之后默认开启 Grafana Alerting 功能，功能区分以及启用方式请参考[官方文档](https://grafana.com/docs/grafana/v8.4/alerting/unified-alerting/opt-in/#opt-in-to-grafana-alerting)，请您根据您部署的版本进行集成，步骤如下。

### Legacy Alerting

<div className="md-block">
  1. 打开您的 Grafana 控制台，选择 Alerting > Notification channels 页面
  2. 点击 Add Channel，打开配置 Channel 弹窗页面
  3. 配置名称，Type 选择 webhook，Url 填写集成的推送地址， Method 选择 POST，如下图所示：

  <img src="https://download.flashcat.cloud/grafana-legacy-alerting.png" alt="drawing" width="600" />

  4. 保存，回到集成列表，等待产生告警后，如果展示了最新事件时间，说明配置成功且收到事件
  5. 完成
</div>

### Grafana Alerting

<div className="md-block">
  1. 打开您的 Grafana 控制台，选择 Alerting > Contact points 页面
  2. 点击 New contact point，打开配置弹窗页面
  3. 配置名称，Type 选择 webhook，Url 填写集成的推送地址， Method 选择 POST，如下图所示：

  <img src="https://download.flashcat.cloud/grafana-contact-point.png" alt="drawing" width="600" />

  4. 打开 Notification policies 页面，根据情况编辑或新增 policy，选择上一步创建的 contact point 作为发送渠道，如下图所示：

  <img src="https://download.flashcat.cloud/grafana-notification-policy.png" alt="drawing" width="600" />

  5. 保存，回到集成列表，等待产生告警后，如果展示了最新事件时间，说明配置成功且收到事件
  6. 默认告警等级为 warning，如果需要自定义，可以在告警详情页面配置 severity 标签（枚举参考下文状态对照），具体操作如下图所示：

  <img src="https://download.flashcat.cloud/grafana-alert-rule.png" alt="drawing" width="600" />

  7. 完成
</div>

## 状态对照

***

<div className="md-block">
  Legacy Alerting 到 Flashduty 告警等级映射关系：

  | Legacy Alerting | Flashduty | 状态 |
  | --------------- | --------- | -- |
  | alerting        | Warning   | 警告 |
  | no\_data        | Critical  | 严重 |
  | ok              | Ok        | 恢复 |

  Grafana Alerting 到 Flashduty 告警等级映射关系：

  系统依次提取告警事件标签中的 `severity`、`priority`和 `level`，对应值将作为 Prometheus 自身的告警等级，如果没有提取到，系统自动设置 Prometheus 告警等级为 `warning`。

  | Grafana Alerting | Flashduty | 状态 |
  | ---------------- | --------- | -- |
  | critical         | Critical  | 严重 |
  | warning          | Warning   | 警告 |
  | warn             | Warning   | 警告 |
  | info             | Info      | 提醒 |
  | acknowledged     | Info      | 提醒 |
  | unknown          | Info      | 提醒 |
  | unk              | Info      | 提醒 |
  | ok               | Ok        | 恢复 |
</div>
