夜莺-Nightingale
夜莺V7
夜莺V6
项目介绍
架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
users
notify_tpl
board
users
target
target
user_group
user_group_member
task_tpl
task_tpl_host
task_record
sso_config
role
role_operation
recording_rule
notify_tpl
metric_view
datasource
configs
chart_share
busi_group
busi_group_member
builtin_cate
builtin_cate
builtin_cate
builtin_cate
board
board_payload
alerting_engines
alert_subscribe
alert_rule
alert_mute
alert_his_event
alert_cur_event
alert_aggr_view
FAQ
转发数据给多个时序库
机器列表数据异常
数据流图
监控数据时有时无
查询原始监控数据
快捷视图详解
告警自愈模块使用
仪表盘里只展示我的机器
仪表盘里图表数据缺失
设置自定义告警通知方式
target_up指标的问题
夜莺可以监控 x 么
夜莺告警常见问题排查思路
告警和恢复的判断逻辑
容量规划问题
connection refused
登录与认证
数据采集器Categraf
日志写到`/var/log/messages`
告警规则&告警模板如何引用变量
采集到的数据是字符串怎么处理
管理员密码忘记了
制作大盘如何添加图片
添加loki数据源报错
v6小版本升级有什么 sql 要执行吗
机器列表有展示,但采集数据查询不到
n9e 启动异常报错
n9e集群部署配置修改
推送 Promethus 报错 OOO
机器列表怎么忽略云资源
告警规则仅在本业务组生效失败
categraf 启动 oracle 插件报错
告警自愈不生效
n9e查询时序库EOF报错
手动编译项目报错
promQL 使用函数标签信息丢失
内存使用率+可用率不等于100
夜莺仪表盘有哪些内置变量
categraf配置文件支持热加载吗
导入 Grafana 仪表盘无效数据源
如何查看报错消息
采集器-Categraf
插件配置
Flashcat 企业版
开源生态
Telegraf
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
开篇
理解时间序列
Metrics类型
初识PromQL
PromQL操作符
PromQL聚合操作
PromQL内置函数
在HTTP API中使用PromQL
最佳实践:4个黄金指标和USE方法
小结
第3章:Prometheus告警处理
开篇
Prometheus告警简介
自定义Prometheus告警规则
部署Alertmanager
Alertmanager配置概述
基于标签的告警处理路由
使用Receiver接收告警信息
告警模板详解
屏蔽告警通知
使用Recoding Rules优化性能
小结
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
开篇
初识Kubernetes
在Kubernetes下部署Prometheus
Kubernetes下的服务发现
使用Prometheus监控Kubernetes集群
基于Prometheus的弹性伸缩
小结
第9章:Prometheus Operator
参考资料
概述
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" }}
測試功能
在配置完成後,您可以使用頁面提供的測試功能來驗證您的判斷邏輯是否正確:
- 點擊「測試」按鈕
- 查看測試結果,確認是否符合預期
- 根據需要調整判斷邏輯
故障排除
常見問題
-
模板解析失敗
- 檢查 Go Template 語法是否正確
- 確認變數名拼寫無誤
-
模板執行失敗
- 檢查是否使用了不存在的標籤或屬性
- 確認數據類型是否匹配
-
事件未按預期刪除
- 確認模板返回值是否為字符串 “true”
- 使用測試功能驗證邏輯
調試建議
- 使用簡單的條件開始測試
- 逐步增加複雜度
- 查看系統日誌了解執行結果
- 利用測試功能驗證邏輯正確性
通過合理使用 Event Drop 處理器,您可以實現精確的事件過濾,減少不必要的告警噪音,提高告警系統的效率。