跳转到主要内容

在哪里使用过滤条件?


过滤条件应用于以下场景:
场景说明
分派策略同一个协作空间允许创建多个分派策略,每个分派策略可以设置不同的过滤条件,针对不同的故障设定不同的分派对象
静默规则设置过滤条件来匹配特定的故障,满足条件的故障将会被静默
抑制规则设置过滤条件,分别匹配新触发的故障和已有的活跃故障,当新故障满足条件,将被抑制
告警聚合设置过滤条件匹配特定的告警,并针对这部分告警设置新的聚合维度
路由规则使用集成中心的告警集成时,设置全局路由匹配规则,将不同的告警路由到特定协作空间
标签增强设置过滤条件来匹配特定的告警,满足条件的告警按照规则进行标签的生成
告警处理设置过滤条件来匹配特定的告警,满足条件的告警将按照规则进行处理

如何配置过滤条件?


规则设计

Flashduty On-call 将整个过滤条件做了抽象,期望做到最小化配置且满足大部分场景需求。 整体判断逻辑分为多组条件:
  • 组内条件AND 关系,即每一个条件均匹配,整个组才为匹配
  • 组与组之间OR 关系,即任一组条件匹配,整体即为匹配
每一个条件内部,分字段(field)、操作符(oper)以及目标值(values):
  • 匹配:目标可以有多个 value,任一 value 满足条件,则该条件匹配
  • 不匹配:目标可以有多个 value,所有 value 均不满足条件,则该条件匹配
条件中的目标值 value,全部为字符串,支持精确正则通配IP 段数值大小等多种匹配方式。
过滤条件示例 如上图所示,我们有两组条件,每组条件内有两个条件,条件匹配值有多个。表达式如下:
( severity == Critical|Warning && labels.check == Binlog同步延迟 )
or
( labels.check == /cpu/|/io/|/disk/ && labels.value == num:gt:90 )

匹配方式

当 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 进行验证。