- 同一 Twilio 账户上同一错误码的事件合并为一条告警,例如您的应用地址返回 404 导致的一批
11200错误 - Warning 级别的事件不生成告警
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Twilio,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Twilio,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Twilio 中配置
1
填写 Error webhook
- 登录 Twilio Console,进入 Monitor → Error webhook
- 在 webhook 地址中填写 Flashduty 集成的完整推送地址,保存
2
测试
Error webhook 没有“发送测试通知”按钮。可以用下面的方式产生一条真实的 Error 事件:
- 在 Phone Numbers 中打开一个号码,把 A call comes in 的地址改成一个会返回 404 的地址,例如
https://example.com/not-found - 拨打这个号码,Twilio 请求该地址失败,在 Debugger 中记录错误
11200 - 几秒后 Flashduty 中出现标题为
Twilio error 11200: ...的告警
3
开启超时自动关闭
Debugger 事件是一次性的日志,Twilio 不会在错误消失后再发送通知,告警不会自动恢复。请在接收这些告警的协作空间中开启 超时自动关闭,建议超时时长 2 小时,计时起点选择 故障触发。故障关闭时,关联的告警一并关闭;错误仍在发生时,下一条事件会重新打开告警。
推送内容
Twilio 每次推送一个 Debugger 事件,请求体为
application/x-www-form-urlencoded,其中 Payload 是 JSON:
每条告警还带有标签
source=twilio,描述中附有该错误码在 Twilio 错误字典中的链接(https://www.twilio.com/docs/errors/<错误码>)。标题示例:Twilio error 11200: An attempt to retrieve content from https://app.example.com/voice returned the HTTP status code 404。
Alert Key
Flashduty 用
AccountSid 和 Payload.error_code 共同计算 Alert Key,不使用事件 ID Sid:
- 同一账户上同一错误码的事件合并到同一条告警,告警的标题、描述和标签显示最近一次事件的内容
- 不同错误码、不同账户(包括不同子账户)的事件是不同的告警
- 这与 Twilio Alarms 按账户、按错误码统计错误的方式一致
状态和告警等级
Error 事件缺少
AccountSid 或 Payload.error_code,或 Payload 不是合法的 JSON 时,请求会被拒绝。
常见问题
为什么 Warning 事件没有生成告警?
为什么 Warning 事件没有生成告警?
Twilio 把请求仍能被处理的问题记为 Warning,例如 TwiML 校验警告。这类事件数量多、通常不需要值班人员立即处理,Flashduty 返回成功但不生成告警。它们仍然可以在 Twilio 的 Debugger 中查看。
同一个错误持续发生,为什么只有一条告警?
同一个错误持续发生,为什么只有一条告警?
同一账户、同一错误码的事件会合并到一条告警上,告警的事件数随之增加,不会为每次出错单独打开告警。开启超时自动关闭后,故障在超时后关闭;如果错误还在发生,下一条事件会打开新的告警。
需要校验 X-Twilio-Signature 吗?
需要校验 X-Twilio-Signature 吗?
不需要。Flashduty 通过推送地址中的
integration_key 识别集成,不校验 X-Twilio-Signature 签名。请像保管密钥一样保管推送地址。排查问题
- Twilio 的 Debugger 中出现错误但 Flashduty 没有告警:确认 Monitor → Error webhook 中的地址完整(包含
integration_key),并且事件级别为 Error - 请求被拒绝(4xx):确认推送地址是 Twilio 集成的地址,不是其他集成的地址
- 告警一直不关闭:在协作空间中开启超时自动关闭