Skip to main content

在哪里使用过滤条件?


过滤条件应用于以下场景:

如何配置过滤条件?


规则设计

Flashduty On-call 将整个过滤条件做了抽象,期望做到最小化配置且满足大部分场景需求。 整体判断逻辑分为多组条件:
  • 组内条件AND 关系,即每一个条件均匹配,整个组才为匹配
  • 组与组之间OR 关系,即任一组条件匹配,整体即为匹配
每一个条件内部,分字段(field)、操作符(oper)以及目标值(values):
  • 匹配IN):目标可以有多个 value,任一 value 满足条件,则该条件匹配
  • 不匹配NOTIN):目标可以有多个 value,所有 value 均不满足条件,则该条件匹配
操作符仅支持上述两种:匹配IN)与 不匹配NOTIN),没有单独的 equalregexcontains 等算子。具体的匹配语义由下方的目标值格式决定。

可选字段(field)

过滤条件的 key 分为两类:
历史上曾分别使用 alert_severity(告警严重级别)和 incident_severity(故障严重级别)两个字段。目前已统一为 severity,加载旧规则时系统会自动将这两个 key 迁移为 severity,您无需手动修改,正常保存即可持久化新 key。
条件中的目标值 value,全部为字符串,支持精确正则通配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 进行验证。