跳转到主要内容
告警处理 Pipeline 允许您在告警数据进入 Flashduty On-call 的第一时间(集成层),对其进行清洗转换过滤。它就像一个数据加工厂,确保流入协作空间的告警是规范、清晰且有价值的。

处理顺序

告警事件进入 Flashduty 后,依次经过三个阶段:
阶段说明
① 标签增强(Enrich)动态生成或修改告警标签,如通过 API 查询 CMDB 补充业务信息
② 告警处理(Pipeline)清洗、转换、过滤告警数据(即本文档描述的功能)
③ 路由分发(Route)根据告警属性将事件分发到对应的协作空间
由于标签增强在 Pipeline 之前执行,Pipeline 的匹配条件可以引用增强阶段新增或修改的标签
恢复事件(event_status 为 Ok)不经过告警处理 Pipeline,直接进入告警合并流程。因此,Pipeline 中配置的丢弃、抑制、重写等规则不会对恢复事件生效。

工作原理

Pipeline 位于 标签增强路由分发 之间。它的执行逻辑如下:
  1. 链式处理:您可以配置多个处理规则,系统按照从上到下的顺序依次执行
  2. 输入输出:上一个规则处理后的结果(如修改了标题),可以作为下一个规则的输入
  3. 层级定位:Pipeline 作用于 集成层。这意味着规则一旦生效,所有通过该集成接入的告警都会受影响,无论它最终被路由到哪个协作空间
告警处理工作原理

配置入口

进入 集成中心 => 选择已创建的集成 => 告警处理 页签。
告警处理配置入口

核心功能与场景

严重程度自定义

Flashduty On-call 已经为标准集成内置了等级映射(例如将 Zabbix High 映射为 Critical)。但如果默认规则不满足您的需求,您可以通过 Pipeline 进行覆盖。 场景:监控系统中的 Warning 级别告警,对于核心支付业务来说实际上是致命的,需要升级为 Critical 以触发电话通知。
配置项
条件labels.service 等于 paymentseverity 等于 Warning
动作更新严重程度为 Critical

信息重写

通过模板语法,将晦涩难懂的机器语言转换为人类可读的业务语言。
场景:原始标题包含大量 ID,缺乏业务含义。
项目内容
原标题[Problem] CPU Load High on i-12345678
新标题模板[TPL]{{.Labels.env}}环境 - {{.Labels.service}}服务 CPU 负载告警
效果生产环境 - 订单服务 CPU 负载告警

告警丢弃

在数据入库前直接丢弃,不保留任何记录。这与协作空间的”排除规则”类似,但生效位置更靠前。
场景优势
开发环境的频繁重启告警直接在源头清洗
某些已知的无害报错(如 “NTP offset”)减少对后续路由和存储资源的占用

告警抑制

Pipeline 中的抑制功能与协作空间的抑制规则类似,都支持基于源告警、目标告警和关联条件的依赖抑制。需要注意的是,Pipeline 抑制仅在同一集成的告警范围内匹配源告警,而协作空间抑制则在整个空间的告警范围内匹配。
对比项Pipeline 抑制协作空间抑制
生效层级集成层空间层
匹配范围仅匹配同一集成内的活跃告警匹配同一协作空间内的所有活跃告警
适用场景全局性的抑制逻辑,如机房断网后抑制该机房所有告警特定协作空间的抑制规则
版本要求需要标准版(Standard)及以上需要标准版(Standard)及以上
当整个机房断网时,该机房下的所有告警(无论属于哪个业务线)都应该被抑制。此时在集成层配置一条规则,比在几十个协作空间里分别配置要高效得多。
抑制功能仅匹配最近 10 分钟(600 秒)内仍处于活跃状态的源告警。如果源告警在 10 分钟前已触发且未更新,则不会被用于抑制匹配。请确保您的源告警在此时间窗口内持续活跃。

参考历史数据

在编辑告警处理规则时,页面右侧提供 关联告警 面板,展示通过当前集成接入的历史告警数据。你可以一边编写处理规则,一边参考实际告警内容,确保规则的条件表达式和动作配置符合预期。 点击编辑页面右上角的 参考历史数据 按钮,即可打开或关闭右侧的关联告警面板。面板支持拖拽调整宽度,方便你在编辑区域和数据预览之间灵活切换。
在首次配置 Pipeline 时,建议打开关联告警面板,参考真实的告警标签和字段值来编写匹配条件,避免因字段名称不一致导致规则无法命中。

引用语法说明

在重写标题或描述时,可以使用 Go Template 语法引用告警内部变量。合理使用变量引用,可以让您的告警通知更具动态性和信息量。
变量说明示例
[TPL]{{.Labels.xxx}}引用特定标签[TPL]{{.Labels.host}}
[TPL]{{.Title}}引用当前标题[TPL][转发] {{.Title}}
[TPL]{{.Description}}引用当前描述[TPL]详情: {{.Description}}
[TPL]{{.EventSeverity}}引用当前等级[TPL]当前级别: {{.EventSeverity}}
在配置 Pipeline 之前,建议先观察一段时间的原始告警数据,明确哪些字段(Labels)是稳定的,哪些是需要清洗的。

延伸阅读

配置标签增强

动态生成或修改告警标签

配置过滤条件

了解条件匹配语法

配置路由规则

将告警分发到不同协作空间

配置降噪策略

在协作空间层面抑制告警