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

工作原理

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 抑制协作空间抑制
生效层级集成层空间层
适用场景全局性的抑制逻辑,如机房断网后抑制该机房所有告警特定协作空间的抑制规则
当整个机房断网时,该机房下的所有告警(无论属于哪个业务线)都应该被抑制。此时在集成层配置一条规则,比在几十个协作空间里分别配置要高效得多。

引用语法说明

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

延伸阅读