> ## 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.

# Pulsetic 告警集成

> 通过 Pulsetic 监控项的 Webhook 通知，将网站宕机、恢复和 SSL 证书即将过期的告警同步到 Flashduty On-call。

通过 Pulsetic 监控项（Monitor）的 Webhook 通知，把宕机（`monitor_offline`）、恢复（`monitor_online`）和 SSL 证书即将过期（`certificate_expires_soon`）通知同步到 Flashduty On-call。每个监控项对应一条 Flashduty 告警：监控项宕机时触发，恢复时自动关闭。

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

  ***

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

  ### 使用专属集成

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

  ### 使用共享集成

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

## 在 Pulsetic 中配置

***

<Steps>
  <Step title="打开监控项的 Webhook 设置">
    1. 登录 Pulsetic，进入 **Monitors**，点击监控项右侧的 **···**，选择 **Alerts**
    2. 在 **Developer Tools** 分组中选择 **Webhook**
    3. 将 Flashduty 集成的完整推送地址粘贴到 **Webhook URL**，点击 **Save**

    也可以在 **Account → Alerts** 中配置一次，让它对所有监控项生效（General Alerts）。

    <Note>
      免费版每个监控项可配置 1 个 Webhook 地址，Webhook 通知本身不需要付费套餐。
    </Note>
  </Step>

  <Step title="发送测试请求（可选）">
    保存后点击 **Send test**，展开三个按钮：**Send Online Request**、**Send Offline Request** 和 **Send SSL Expires Soon Request**。点击 Online 或 Offline 按钮，Flashduty 会收到一条标题为 `Pulsetic test notification` 的 Info 等级告警，不会影响监控项的真实告警，测试告警不会自动恢复，请在验证后手动关闭。SSL 按钮发送的是被监控地址证书的真实剩余天数，与真实的证书提醒无法区分，Flashduty 会按真实提醒处理，创建一条 Warning 告警。
  </Step>

  <Step title="验证生命周期">
    让监控项真正宕机（例如临时指向一个返回 5xx 的地址），确认 Flashduty 收到 Critical 告警；恢复目标后，确认原告警自动关闭。
  </Step>
</Steps>

## 推送内容

***

Pulsetic 以 JSON 格式 POST 以下字段，Flashduty 直接解析，无需配置模板：

| 字段 | 含义 | 在 Flashduty 中 |
| :- | :- | :- |
| `alert_type` | `monitor_offline`、`monitor_online` 或 `certificate_expires_soon` | 触发或恢复，标签 `alert_type` |
| `monitor.id` | 监控项 ID | Alert Key，标签 `monitor_id` |
| `monitor.name` | 监控项名称 | 告警标题，标签 `check` |
| `monitor.url` | 被监控地址 | 标签 `url`、`resource` |
| `monitor.response_code` | 宕机时返回的 HTTP 状态码 | 标签 `response_code` |
| `monitor.fail_reason` | 宕机原因，例如 `Check failed with 500 code` | 标签 `fail_reason`，写入描述 |
| `monitor.downtime` | 恢复时的宕机时长 | 写入描述 |
| `monitor.tags` | 监控项标签 | 标签 `tags` |
| `days_left` | SSL 证书剩余天数 | 标签 `days_left`，写入描述 |

告警标题使用监控项名称；名称为空时使用被监控地址。

## Alert Key

***

Flashduty 使用 `monitor.id` 作为宕机和恢复告警的 Alert Key。同一个监控项的宕机、重复宕机和恢复通知携带相同的 `monitor.id`，因此会落在同一条告警上；修改监控项的名称、地址或标签不会改变 Alert Key。

SSL 证书即将过期通知使用 `alert_type` 加 `monitor.id` 生成独立的 Alert Key，同一个监控项的多次提醒合并为一条告警，不会与宕机告警互相关闭。

请求中缺少 `monitor.id` 时，Flashduty 会返回参数错误，因为无法把恢复通知关联到原告警。

## 状态和告警等级

***

Pulsetic 的通知不区分告警等级，Flashduty 按下表处理：

| `alert_type` | Flashduty 状态或等级 |
| :- | :- |
| `monitor_offline` | Critical |
| `monitor_online` | 恢复，原等级为 Critical |
| `certificate_expires_soon` | Warning，不会自动恢复 |

其他 `alert_type`（例如 Pulsetic 日后新增的类型）会被确认并忽略，不创建告警。

## 常见问题

***

<AccordionGroup>
  <Accordion title="SSL 证书过期告警不会自动关闭吗？">
    Pulsetic 没有为证书提醒发送恢复通知。请在 Flashduty 集成或协作空间中开启 [**超时自动关闭**](/zh/on-call/channel/create-edit)，建议设置为 24 小时；更换证书后再次提醒时会重新触发。
  </Accordion>

  <Accordion title="测试按钮会影响真实告警吗？">
    宕机和恢复两个测试按钮不会。它们发送的内容带有固定的示例值（例如宕机原因 `fail reason`），Flashduty 识别后会创建一条独立的 Info 告警，不会触发、更新或关闭监控项的真实告警。SSL 测试按钮会创建一条 Warning 告警（见上文），验证后请手动关闭。
  </Accordion>

  <Accordion title="监控项宕机后没有立刻收到告警？">
    Pulsetic 按监控项设置的检查间隔探测，并可在 **Intervals** 中设置宕机后等待多久再发送通知。通知发出前 Flashduty 不会收到请求。
  </Accordion>
</AccordionGroup>

## 排查问题

***

* **Pulsetic 没有推送**：确认监控项的 Alerts → Webhook 已保存，且 Webhook URL 是包含 `integration_key` 的完整推送地址
* **Flashduty 返回参数错误**：确认请求体包含 `alert_type` 和 `monitor.id`
* **告警没有恢复**：确认恢复通知与宕机通知来自同一个监控项，`monitor.id` 必须相同

字段说明请参阅 Pulsetic 官方文档 [Webhook Notifications](https://help.pulsetic.com/article/235-webhook-notifications)。
