组合检测¶
当前文档定位
本文档为检测规则配置流程中的第二步。配置完成后,请返回主文档继续第三步:事件通知。
数据范围:全部(基于被组合监控器的结果进行逻辑运算)
将多个监控器的结果通过表达式组合成一个监控器,最终基于组合后的结果进行告警。适用于多条件联合判定、依赖关系检测等复杂场景。
检测配置¶
检测频率¶
组合监控没有固定的检测频率,而是根据所选择监控器的事件状态来进行判断。由于各个监控器检测频率不一定相同,系统选取其中最大的检测频率同频作判断。
示例:监控器 A 检测频率(5 分钟),监控器 B 检测频率(1 小时),那么组合监控 A&&B 就跟随 B 一起做判断(1 小时一次)。B 触发检测后,结合监控器 B 的检测结果,与监控器 A 最新一次检测结果,进行逻辑判断。
检测指标¶
选择监控器¶
选择至少两个监控器作为组合对象,系统会自动分配标识符(A、B、C...),用于后续逻辑表达式引用。
| 配置项 | 说明 |
|---|---|
| 监控器 A/B/C... | 选择已创建的监控器作为组合对象,右侧会显示其 by 条件分组 |
| 添加监控器 | 点击添加更多监控器,最多支持 10 个 |
注意
若监控器的 BY 配置不符合规则(如分组维度无交集),监控器可以创建成功,但不会产生告警。
组合方式¶
通过逻辑表达式“与或非”定义组合监控器是否触发事件。当所选监控器都触发异常状态时,解析为真(true),反之解析为假(false)。
1. 支持运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
&& |
与(AND) | A && B:A 和 B 都处于异常状态 |
\|\| |
或(OR) | A \|\| B:A 或 B 任一处于异常状态 |
! |
非(NOT) | !C:C 不处于异常状态 |
2. 复杂表达式
支持组合使用,如 A && B || !C
逻辑运算详解¶
如何定义“真”(true)¶
基于所选的监控,若监控器中存在分组,那么当所有监控器共同的分组都处于异常状态时才会解析为"真"(true)。
示例:选择了监控器 A(主机 1、2、3、4 产生告警)与监控器 B(主机 2、3、5、6 产生告警),那么组合监控器 (A&&B) 只有主机 2 和 3 会返回为"真"(true),产生告警。
分组不一致处理¶
当组合方式中的监控器分组不一致时,系统取分组维度的交集作为最终的 dimension_tags。
示例:选择监控器 A:by host;监控器 B:by host, device。
此时取交集 host 作为最终的维度,监控器 A 正常判断即可,监控器 B 中取主机的所有 device 的最严重等级作为该主机状态:
| 监控器 B 原始状态 | 聚合后状态(按 host) |
|---|---|
| 主机 a, device1: error 主机 a, device2: critical 主机 a, device3: ok |
主机 a: critical(取最严重) |
| 主机 b, device4: error 主机 b, device5: info |
主机 b: error(取最严重) |
无共同分组情况:若监控器分组无交集(如 A 按 host,B 按 pod),则不会产生告警。
后续配置¶
完成上述检测配置后,请继续配置:
- 事件通知:定义事件标题、内容、通知成员、数据断档处理及关联故障;
- 告警配置:选择告警策略,设置通知对象和静默周期;
- 关联:关联仪表板,便于快速跳转查看数据;
- 权限:设置操作权限,控制谁可以编辑/删除此监控器。
常见问题¶
被组合的原始监控器是否会正常监控?
会。被组合的监控器不受任何影响,仍按自身配置独立运行和告警。
组合监控如何计算任务调用?
检测一次计为 1 次任务调用,检测频率与被组合监控器中最大的检测频率一致。