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

# Airbrake 告警集成

> 通过 Webhook 将 Airbrake 项目的错误通知同步到 Flashduty On-call。

通过 Airbrake 项目的 Webhook 集成，将错误通知同步到 Flashduty On-call。每个 Airbrake 错误（error）对应一条 Flashduty 告警，同一个错误再次推送时合并到同一条告警。Airbrake 的 Webhook 没有"已解决"通知，告警需要由协作空间的超时自动关闭或手动关闭。

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

  ***

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

  ### 使用专属集成

  1. 进入 Flashduty 控制台，选择 **协作空间**，打开一个协作空间
  2. 选择 **配置** → **集成数据** → **专属集成**，点击 **新增一个集成**
  3. 选择 **Airbrake**，点击 **保存**
  4. 打开生成的集成卡片，复制 **推送地址**

  ### 使用共享集成

  1. 进入 Flashduty 控制台，选择 **集成中心 → 告警事件**
  2. 选择 **Airbrake**，填写集成名称
  3. 配置默认路由并选择协作空间；创建后可在 **路由** 中增加更多规则
  4. 点击 **保存**，复制生成的 **推送地址**
</div>

## 在 Airbrake 中配置

***

<Steps>
  <Step title="添加 Webhook 集成">
    1. 进入需要接入的 Airbrake 项目，打开项目的集成（Integrations）设置，选择 **Webhook**
    2. 将 Flashduty 集成的完整推送地址填入 Webhook URL，地址中需包含 `integration_key`
    3. 如只需要生产环境的错误，勾选"仅推送 production 环境的错误"
    4. 点击 **Save**
  </Step>

  <Step title="开启超时自动关闭">
    Airbrake 的 Webhook 只推送错误通知，没有恢复事件：错误在 Airbrake 中被标记为解决后，Flashduty 不会收到通知。

    请在接收这些告警的协作空间中开启 [超时自动关闭](/zh/on-call/channel/create-edit)，建议时长 24 小时。同一个错误在合并窗口内再次推送时会更新同一条告警，已关闭后再次推送会触发新的告警。
  </Step>

  <Step title="验证">
    在接入 Airbrake SDK 的应用中触发一个新错误，确认 Flashduty 出现对应的活动告警，标题为错误消息，标签中的 `error_id` 与 Airbrake 中该错误的 ID 一致。

    Airbrake 文档没有说明测试通知的内容，Flashduty 不对测试推送做特殊识别；如果推送了测试内容，请按普通告警处理并手动关闭。
  </Step>
</Steps>

## Alert Key

***

Flashduty 用 Webhook 内容中的 `error.id`（Airbrake 错误 ID）计算 Alert Key。同一个错误的多次推送使用同一个 Alert Key，错误消息、发生次数、环境、最近一次事件等字段变化不会改变它。缺少 `error.id` 的推送会被拒绝。

## 告警等级

***

Airbrake Webhook 不携带等级，所有推送均为 Warning，状态为触发。

## 标签

***

| 标签 | 来源 |
| :- | :- |
| `error_id` | 错误 ID（`error.id`） |
| `error_class` | 错误类名 |
| `project` / `project_id` | Airbrake 项目名称和 ID |
| `env` | 错误发生的环境 |
| `file` / `line_number` | 错误发生的文件和行号 |
| `times_occurred` | 错误累计发生次数 |
| `first_occurred_at` / `last_occurred_at` | 错误首次和最近一次发生时间 |
| `url` | Airbrake 中该错误页面的链接（`airbrake_error_url`） |

## 排查问题

***

* **Flashduty 返回参数错误**：确认 URL 完整且包含 `integration_key`
* **告警没有恢复**：Airbrake 不推送恢复通知，请开启协作空间的超时自动关闭，或手动关闭告警
* **没有收到推送**：检查是否勾选了仅推送 production 环境，以及错误所在环境是否为 production

更多字段含义请参阅 [Airbrake Webhook](https://docs.airbrake.io/docs/integrations/webhooks/)。
