Skip to main content
通过 Tideways 组织级的 Webhook 集成,将 PHP 应用的性能与错误通知同步到 Flashduty On-call。响应时间、错误率类事件(Incident)有完整的生命周期:开启时触发告警,持续时更新,关闭时告警自动恢复。事务失败率和数据中断只在出现时推送一次,不会发送恢复通知。异常和慢 SQL 通知在错误分组新出现、重新打开或再次出现时发送;分组被标记为已解决时 Tideways 不发送任何通知,这类告警不会自动恢复。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 Tideways 中配置


需要组织的管理权限。Tideways 的 Webhook 只支持 HTTPS 地址,且请求不带签名和自定义请求头,Flashduty 通过推送地址中的 integration_key 识别集成,请勿泄露该地址。
1

添加 Webhook 集成

  1. 进入组织的 Integrations 设置,点击 Add New Integration,选择 Webhook
  2. 填写名称,将 Flashduty 集成的完整推送地址粘贴到 URL,地址中需包含 integration_key
  3. 在触发选项中勾选 and when the alert is fixed。该项默认不勾选,不勾选时 Tideways 不发送 closed 通知,Incident 类告警在 Flashduty 中不会恢复
  4. 保存
2

关联到项目通知

进入应用的 Project Settings → Notifications,对需要值班处理的每条通知规则点击 Edit,勾选刚创建的 Webhook 集成并保存(没有对应规则时,用 Create Notification Rule 新建)。各类型在 Flashduty 中的处理见下表。
3

验证生命周期

让应用的响应时间越过阈值,确认 Flashduty 收到活动告警。指标在规则的检查周期(5 到 60 分钟)内持续超过阈值后,Tideways 才会开启 Incident;指标回落、Tideways 关闭该 Incident 后,确认原告警恢复。集成页的 Preview 按钮发送一条状态为 opened、Incident ID 为占位值的 response_time 通知。Flashduty 会据此创建一条 Warning 告警,之后不会有 closed 通知,验证后请在 Flashduty 中手动关闭。

Alert Key


响应时间、失败率和事务响应时间 Incident 使用 Incident ID(notification.incident_id)与通知类型、组织、应用一起计算 Alert Key。Tideways 文档说明,这三类通知的 status 为 opened、ongoing 或 closed,对应同一个 Incident 的不同阶段;incidient_id 是 incident_id 的历史拼写副本,值相同,Flashduty 在缺少 incident_id 时读取它。缺少两者的 Incident 通知会被拒绝,未知的 status 同样会被拒绝。 其他类型按对象计算 Alert Key:
  • 新异常、新慢 SQL:使用错误分组 ID(notification.error_group.id)。同一分组再次出现时合并到同一条告警
  • 事务失败率、数据中断:使用组织、应用、环境(environment)、服务(service)和事务(transaction)。同一检查对象再次触发时合并到同一条告警
数值、时间、阈值和分组的出现次数变化都不会改变 Alert Key。错误分组状态为 resolved、not_error 或 ignored 的通知会恢复该分组对应的告警。异常规则只在错误首次出现、再次出现(发布后)、重新打开和未确认时通知,因此分组被标记为已解决时实际不会产生通知;重新打开的分组会合并到原告警。

状态和告警等级


Tideways 通知不带告警等级,Flashduty 按类型设置: status 为 closed,或错误分组状态为 resolved、not_error、ignored 时告警恢复,恢复事件保留最近一次的告警等级。

告警不会自动恢复的情况


事务失败率和数据中断只在出现时发送一次,Tideways 没有对应的恢复通知,告警不会自动恢复。异常和慢 SQL 告警在错误分组被标记为已解决或已忽略后仍保持活动,因为 Tideways 不会为此发送通知。 建议在协作空间开启超时自动关闭,超时计时起点选 故障触发,超时时长建议 24 小时。数据中断和新异常一般在一个工作日内确认处理;如果协作空间只接收响应时间和失败率通知,可以不开启。

标签


排查问题


  • Tideways 显示推送失败:确认地址使用 HTTPS 且包含 integration_key。Tideways 不重试,返回 400 及以上状态码的推送只记录在集成页的错误日志中
  • Flashduty 返回参数错误:错误信息会指出缺少的字段(如 notification.incident_id)或不支持的 type
  • 告警没有恢复:响应时间、失败率和事务响应时间 Incident 在 closed 时恢复,异常、慢 SQL、事务失败率和数据中断请开启超时自动关闭。Incident 类告警在 Tideways 关闭后仍未恢复时,检查 Webhook 集成上是否勾选了 and when the alert is fixed
  • 周报或发布通知没有告警:这些通知不是故障,Flashduty 只返回成功
更多字段含义请参阅 Tideways Webhook 文档。