在哪里使用过滤条件?
过滤条件应用于以下场景:
如何配置过滤条件?
规则设计
Flashduty On-call 将整个过滤条件做了抽象,期望做到最小化配置且满足大部分场景需求。 整体判断逻辑分为多组条件:- 组内条件:
AND关系,即每一个条件均匹配,整个组才为匹配 - 组与组之间:
OR关系,即任一组条件匹配,整体即为匹配
- 匹配(
IN):目标可以有多个 value,任一 value 满足条件,则该条件匹配 - 不匹配(
NOTIN):目标可以有多个 value,所有 value 均不满足条件,则该条件匹配
可选字段(field)
过滤条件的 key 分为两类:历史上曾分别使用
alert_severity(告警严重级别)和 incident_severity(故障严重级别)两个字段。目前已统一为 severity,加载旧规则时系统会自动将这两个 key 迁移为 severity,您无需手动修改,正常保存即可持久化新 key。
如上图所示,我们有两组条件,每组条件内有两个条件,条件匹配值有多个。表达式如下:
匹配方式
- 正则匹配
- 通配匹配
- IP 段匹配
- 数值匹配
- 精确匹配
当 value 字符串以
/ 为前后缀,整个 value 将被识别为正则。示例:labels.check:/宕机/— check 标签包含”宕机”时,即匹配
Flashduty 全平台使用
RE2 正则规范,部分 Perl 语法可能无法匹配。您可使用 AI Chatbot 生成表达式,并前往 RE2 Playground 进行验证。常见问题
为什么系统不提示我可选标签?
为什么系统不提示我可选标签?
Flashduty On-call 接受大量数据上报,为了保证系统的稳定性,系统仅查找过去 24 小时内,最多 500 条告警事件进行标签的去重操作。因此提取到的标签范围可能会动态变化,甚至在过去 24 小时没有新数据时提取不到任何标签。这种情况下,您可以手动输入标签。
我的正则已经在线下通过校验,为什么在系统中无法匹配?
我的正则已经在线下通过校验,为什么在系统中无法匹配?
Flashduty 全平台使用
RE2 正则规范,部分 Perl 语法可能无法匹配。您可使用 AI Chatbot 生成表达式,并前往 RE2 Playground 进行验证。