version 为 4,包含 status、alerts、fingerprint、labels、annotations、startsAt、endsAt,另有一个 notifier 字段)。Flashduty 的 Prometheus 集成 与该格式兼容,因此不需要单独的 Chronosphere 集成:在 Flashduty 创建 Prometheus 集成,把它的推送地址填进 Chronosphere 即可。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。集成类型都选择 Prometheus,不是 Chronosphere。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Prometheus,点击 保存
- 打开生成的集成卡片,复制 推送地址,形如
https://api.flashcat.cloud/event/push/alert/prometheus?integration_key=<集成密钥>
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Prometheus,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Chronosphere 中配置
1
创建 Webhook 通知器
- 在 Chronosphere 导航栏选择 Alerting → Notifiers,点击 Create notifier
- 填写通知器名称,类型选择 Webhook
- 在 URL 中填入上一步复制的完整推送地址(包含
?integration_key=...) - 选择 Notify when resolved,否则 Flashduty 收不到恢复通知
- 点击 Save
skip_resolved 控制是否跳过恢复通知,需要设为 false;Terraform 的 chronosphere_webhook_alert_notifier 用 send_resolved 控制,默认值为 true。参见 Chronosphere 文档 Create a webhook notifier。2
在通知策略中使用该通知器
在 Chronosphere 的通知策略(Notification Policy)中,把这个通知器加入对应严重程度(warn、critical)的路由,监控器触发的告警才会发到 Flashduty。
3
验证
让一个监控器触发告警,确认 Flashduty 收到活动告警;告警恢复后,确认 Flashduty 中的原告警关闭。
字段映射
一次通知可以包含多条告警,Flashduty 逐条处理(单次最多 100 条)。
恢复与去重
- Chronosphere 发送
status为resolved的通知时,Flashduty 按相同的fingerprint关闭对应告警。 - 通知器没有开启恢复通知时,Flashduty 不会收到恢复请求,告警会一直保持活动。此时请在协作空间中开启 超时自动关闭。
- Chronosphere 的 Webhook 请求带有
Chronosphere-Webhook-Timestamp和Chronosphere-Webhook-Signature-V1请求头,用 HMAC-SHA256 签名。Flashduty 不要求也不校验签名。 - Chronosphere 官方文档没有说明 Webhook 通知器是否有测试发送功能。首次配置后,用一条真实告警验证触发与恢复是否都出现在 Flashduty 中。
排查问题
- Flashduty 返回
Invalid parameters:推送地址不完整,缺少integration_key,或集成类型不是 Prometheus - 告警没有恢复:确认通知器已选择 Notify when resolved(Terraform 的
send_resolved为true、Chronoctl 的skip_resolved为false),并且恢复通知的fingerprint与触发时一致 - 收不到任何告警:确认通知策略把该通知器加入了对应严重程度的路由,并检查 Chronosphere 能否访问
api.flashcat.cloud