- 异常检测告警:告警打开时触发,被解决(resolved)时恢复。
- 异常事件和性能事件:AppSignal 只在事件创建、重新打开或再次发生时发送,没有恢复通知,因此告警不会自动恢复。请在协作空间中开启超时自动关闭,见下文 异常和性能事件不会恢复。
- 部署标记(Deploy marker):不是告警,Flashduty 收到后直接返回成功,不创建告警。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 AppSignal,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 AppSignal,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 AppSignal 中配置
1
添加 Webhook 通知器
- 登录 AppSignal,进入 Organization settings → Notifications(管理通知器需要组织管理员权限)
- 点击 Add new notifier,在列表中选择 Webhook
- 填写 Name,将 Flashduty 集成的完整推送地址粘贴到 Webhook URL,地址中需包含
integration_key - 在 Scope notifier to the following apps 中选择要通知的应用。没有选中任何应用的通知器不会发送任何通知
- 在 Send notifications for the following events 中勾选 Errors(异常事件)和 Performance(性能事件)。部署标记不会创建告警,无需勾选 Deploys。异常检测告警按触发器选择,见下一步
X-Appsignal-Signature 请求头,Flashduty 不校验该签名,通过推送地址中的 integration_key 认证。2
选择通知器的触发范围
Webhook 通知器创建后,还需要在以下位置选中它,AppSignal 才会向它发送通知:
- 异常检测告警:保存触发器(Trigger)时在 Notify me through 中勾选该通知器。AppSignal 只把告警发送给触发器上选中的通知器
- 异常和性能事件:由通知器的应用范围以及 Errors、Performance 勾选项决定,并按需调整通知频率(Every Occurrence、First in Deploy、First After Close 等)
3
验证
- 在 AppSignal 中让一个触发器进入告警状态,或在应用中触发一个新的异常,确认 Flashduty 收到活动告警
- 异常检测告警解决后,确认 Flashduty 中对应的告警恢复
事件和恢复
AppSignal 只在异常检测告警打开和解决这两次状态变化时通知 Webhook,预热(warming up)和冷却(cooldown)阶段不会推送。
Alert Key
Flashduty 按事件的对象生成 Alert Key,同一对象的多次推送使用同一个 Alert Key:
异常事件和性能事件共用同一套事件编号,Alert Key 由对象类型和上表字段共同计算。触发器名称、当前值、时间、异常消息、版本号等字段变化不会改变 Alert Key。缺少对应字段的推送会被拒绝,并在错误信息中指出字段名。
告警等级
AppSignal 的 payload 不携带等级,所有告警在 Flashduty 中都是 Warning,恢复时状态变为已恢复。如需区分等级,可在集成的路由或告警处理规则中按标签设置。
异常和性能事件不会恢复
异常事件和性能事件没有恢复通知。在接收该集成的协作空间中开启 超时自动关闭,建议 24 小时,并按团队处理异常的时效调整。同一事件再次发生时会更新同一条告警;告警被关闭后再次发生,会创建新的告警。
标签
排查问题
- Flashduty 返回参数错误:确认 URL 完整且包含
integration_key - 没有收到任何推送:确认 Webhook 通知器已在触发器(告警)或应用通知设置(事件)中选中,并且勾选了对应的 payload 类型
- 异常事件没有再次推送:AppSignal 按事件的通知频率发送,设置为 Never Notify 的事件不会推送,也不会重新打开
- 告警一直不恢复:异常和性能事件没有恢复通知,见上文超时自动关闭;异常检测告警需要 AppSignal 端已解决。AppSignal 发送的恢复推送中
state为closed,resolved_at和closed_at均有值。对计数类指标的触发器,指标不再上报时告警会一直保持打开,除非在触发器上勾选 Treat missing datapoint as 0;修改触发器会归档其未关闭的告警,且不发送 Webhook