一、事件类型
目前支持以下事件类型,未来可能会增加。二、推送描述
请求方式
POST, Content-Type:“application/json”
请求 Payload:
Person:
Responder:
Incident:
请求响应
HTTP status code 为 200,认为推送成功。请求示例
三、配置指南
进入 集成中心 → Webhook → 添加或编辑 故障 Webhook 集成。基础设置
填写集成名称和描述,便于后续管理。Webhook 设置
自定义请求体
默认情况下,系统会按照上述 Payload 结构推送完整的 JSON 数据。如果你的接收方对数据格式有特殊要求,可以通过自定义请求体来重新组织推送内容。 使用{{字段路径}} 语法引用默认 Payload 中的任意字段,系统会在推送时将变量替换为实际值。
变量语法:
- 用
.分隔路径层级,如{{incident.title}}引用故障标题 - 支持数组索引访问,如
{{incident.responders.0.email}}引用第一个处理人的邮箱 - 当整个值只有一个变量时(如
"{{incident.labels}}"),会保留原始数据类型(对象、数组、数字等) - 当变量与其他文本混合时(如
"故障:{{incident.title}}"),变量会被转为字符串拼接
值映射
在自定义请求体中,您可能需要将 Flashduty 的字段值转换为接收方系统所期望的格式。通过 值映射 可以在变量解析时自动完成值的转换。 值映射按字段路径分组配置,每个路径下是一个源值 → 目标值 的映射表。
示例:
将严重程度和处理进度转换为接收方系统的自定义值:
Critical 时,推送结果中 severity 字段的值为 P0。未匹配到映射的值将保持原样。
四、调用历史
故障 Webhook 提供完整的调用历史记录,方便你排查推送是否成功以及调试回调接口。查看调用历史
进入故障 Webhook 集成详情页,切换到 调用历史 页签即可查看。筛选与搜索
历史记录字段
查看调用详情
点击某条记录的 查看详情,可查看完整的请求和响应信息:- Request:包括 Endpoint、Request Headers 和 Request Payload
- Response:成功时显示 Response Headers 和 Response Body;失败时显示 Error Message
五、常见问题
-
服务是否有响应超时时间?
- 服务需要在 2 秒内返回响应,超过 2 秒则认为响应失败
- 推送失败后是否会持续推送?
- context deadline exceeded (排除 awaiting headers)
- i/o timeout
- eof
-
如何保证推送顺序?
- 理论上同一个故障的事件是按照时间顺序进行推送,但是重试等情况可能会导致乱序
- 服务可以根据 event_time 进行过滤,如果已经收到了更晚的事件,可以直接过滤掉更早的事件,每一次推送都会携带最新的、完整的信息,偶尔丢失事件是可以容忍的
-
推送来源可信 IP 白名单?
- 未来可能会更新,请定期查验