夜莺-Nightingale
夜莺V7
项目介绍 功能概览
部署升级 部署升级
数据接入 数据接入
告警管理 告警管理
数据查看 数据查看
功能介绍 功能介绍
API FAQ
夜莺V6
项目介绍 架构介绍
快速开始 快速开始
黄埔营
安装部署 安装部署
升级
采集器 采集器
使用手册 使用手册
API API
数据库表结构 数据库表结构
FAQ FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵 第1章:天降奇兵
第2章:探索PromQL 第2章:探索PromQL
第3章:Prometheus告警处理 第3章:Prometheus告警处理
第4章:Exporter详解 第4章:Exporter详解
第5章:数据与可视化 第5章:数据与可视化
第6章:集群与高可用 第6章:集群与高可用
第7章:Prometheus服务发现 第7章:Prometheus服务发现
第8章:监控Kubernetes 第8章:监控Kubernetes
第9章:Prometheus Operator 第9章:Prometheus Operator
参考资料

Event Drop 事件处理器

概述

Event Drop 处理器是一个灵活的事件过滤工具,允许您根据自定义的逻辑条件来决定是否删除特定的告警事件。当标签过滤和属性过滤都无法满足您的需求时,可以使用此处理器实现更加复杂的过滤逻辑。

工作原理

Event Drop 处理器使用 Go Template 语法来编写判断逻辑:

  • 如果模板执行结果为 true,则删除该事件
  • 如果模板执行结果为 false 或其他值,则保留该事件

配置方法

1. 选择处理器类型

在告警规则配置页面中,选择 “Event Drop” 作为处理器类型。

2. 编写判断逻辑

在判断逻辑输入框中,使用 Go Template 语法编写您的过滤条件。

可用变量

在模板中,您可以使用以下预定义变量:

变量 描述 示例用法
$event 整个事件对象 $event.RuleName
$labels 事件的标签映射 $labels.instance
$value 触发值 $value

使用示例

示例1:根据标签值过滤

{{ if eq $labels.service "mon" }}true{{ else }}false{{ end }}

此配置会删除所有标签 service 为 “mon” 的事件。

示例2:根据触发值过滤

{{ if lt $value 10 }}true{{ else }}false{{ end }}

此配置会删除所有触发值小于 10 的事件。

示例3:根据实例名称过滤

{{ if hasPrefix $labels.instance "test-" }}true{{ else }}false{{ end }}

此配置会删除所有实例名称以 “test-” 开头的事件。

示例4:组合条件过滤

{{ if and (eq $labels.env "dev") (lt $value 5) }}true{{ else }}false{{ end }}

此配置会删除环境为 “dev” 且触发值小于 5 的事件。

常用模板函数

比较函数

  • eq: 等于 - {{ eq $value 100 }}
  • ne: 不等于 - {{ ne $labels.env "prod" }}
  • lt: 小于 - {{ lt $value 50 }}
  • le: 小于等于 - {{ le $value 50 }}
  • gt: 大于 - {{ gt $value 100 }}
  • ge: 大于等于 - {{ ge $value 100 }}

逻辑函数

  • and: 逻辑与 - {{ and (eq $labels.env "prod") (gt $value 100) }}
  • or: 逻辑或 - {{ or (eq $labels.env "dev") (eq $labels.env "test") }}
  • not: 逻辑非 - {{ not (eq $labels.env "prod") }}

字符串函数

  • hasPrefix: 前缀匹配 - {{ hasPrefix $labels.instance "web-" }}
  • hasSuffix: 后缀匹配 - {{ hasSuffix $labels.instance "-prod" }}
  • contains: 包含字符串 - {{ contains $labels.message "error" }}

测试功能

在配置完成后,您可以使用页面提供的测试功能来验证您的判断逻辑是否正确:

  1. 点击"测试"按钮
  2. 查看测试结果,确认是否符合预期
  3. 根据需要调整判断逻辑

常见问题

  1. 模板解析失败

    • 检查 Go Template 语法是否正确
    • 确认变量名拼写无误
  2. 模板执行失败

    • 检查是否使用了不存在的标签或属性
    • 确认数据类型是否匹配
  3. 事件未按预期删除

    • 确认模板返回值是否为字符串 “true”
    • 使用测试功能验证逻辑

调试建议

  1. 使用简单的条件开始测试
  2. 逐步增加复杂度
  3. 查看系统日志了解执行结果
  4. 利用测试功能验证逻辑正确性

通过合理使用 Event Drop 处理器,您可以实现精确的事件过滤,减少不必要的告警噪音,提高告警系统的效率。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat