分派策略
概述
分派策略决定告警被路由到哪个团队或IM群组。每个集成可配置多条分派策略,系统按顺序依次匹配。通过合理配置分派策略,你可以根据告警的来源、级别、内容等条件,将告警自动分派到最合适的处理团队,确保告警被快速响应。
创建分派策略
按照以下步骤创建一条新的分派策略:
- 进入集成详情页面
- 切换到分派 Tab
- 点击新建策略按钮
- 配置时间过滤、条件过滤和分派目标(详见下文)
- 保存策略
时间过滤
时间过滤是可选配置,用于指定策略生效的时间范围。未配置时间过滤的策略全天候生效。
你可以指定策略生效的星期和时间范围。例如:
- 仅工作日(周一至周五)09:00-18:00 生效
- 仅周末全天生效
- 仅每天夜间 18:00-次日09:00 生效
通过时间过滤,你可以为工作时间和非工作时间分别配置不同的分派策略,实现更精细的告警路由。例如工作时间分派到日常值班团队,非工作时间分派到紧急响应团队。
条件过滤
条件过滤是可选配置,用于根据告警字段的值来决定是否匹配该策略。未配置条件过滤的策略匹配所有告警。
简单条件
简单条件由三部分组成:字段(field) + 操作符(operator) + 值(value)。
支持的操作符:
- 包含 -- 字段值包含指定字符串
- 等于 -- 字段值完全等于指定字符串
- 正则 -- 字段值匹配指定正则表达式
Aviator 表达式
对于复杂的匹配逻辑,可以使用 Aviator 表达式进行高级自定义。Aviator 支持字符串操作、逻辑判断、正则匹配等丰富的表达式能力。
## 示例:匹配标题包含 "OOM" 且级别为 critical 的告警
string.contains(title, "OOM") && reserved_keys.severity == "critical"
支持的字段
| 字段名 | 说明 |
|---|---|
title | 告警标题 |
description | 告警描述 |
reserved_keys.severity | 告警级别(critical / warning / info) |
reserved_keys.channelName | 告警来源的集成名称 |
reserved_keys.webHookName | 接收告警的 Webhook 名称 |
分派目标
分派目标定义了告警匹配策略后要发送到哪里。支持两种类型:
团队(TEAM)
将告警分派给指定的值班团队。系统会根据团队当前的排班规则,自动将告警通知到当前值班人。
- 告警会创建为事件(Incident),分配给团队
- 系统根据排班规则确定当前值班人
- 值班人通过配置的通知渠道收到告警通知
IM群组(IM_GROUP)
将告警同时发送到关联的IM群组(钉钉、飞书、企业微信等)。
- 告警消息会推送到指定的IM群
- 可配合团队分派同时使用,实现多通道通知
通知模板
每个分派目标可选配置通知模板,自定义告警消息的展示格式。未配置时使用系统默认模板。
策略优先级
一个集成下可以配置多条分派策略。系统按策略的顺序从上到下依次评估,所有匹配的策略都会执行。
这意味着一条告警可以同时匹配多条策略,被分派到多个团队或IM群组。例如:
- 策略1:所有 critical 告警 -- 分派到「SRE紧急响应组」
- 策略2:所有告警 -- 发送到「运维群」IM群组
一条 critical 告警会同时触发策略1和策略2,既分派给 SRE 团队值班人,又推送到运维群。
升级策略(Escalation)
升级策略用于处理事件未被及时响应的情况。当告警分派后,如果在规定时间内没有被认领或处理,系统会自动升级通知,确保告警不会被遗漏。
配置项
| 参数 | 说明 |
|---|---|
| 延迟时间 | 事件创建后等待多长时间开始升级通知 |
| 通知间隔 | 每次升级通知之间的时间间隔 |
| 最大通知次数 | 每个升级步骤的最大通知次数,达到上限后停止该步骤的通知 |
通知目标
升级通知可以发送给以下对象:
- 当前值班人 -- 当前排班的值班人员
- 上一个值班人 -- 排班顺序中的上一位值班人员
- 下一个值班人 -- 排班顺序中的下一位值班人员
- 指定人员 -- 手动指定的特定人员
通知渠道
升级策略支持 SMS + IM 双通道通知,确保在紧急情况下通知能够有效送达。
建议为 critical 级别的告警配置升级策略,避免因值班人未及时查看消息而导致故障处理延迟。