Grafana Alert 告警条件模块详解

发布于:2025-08-29 ⋅ 阅读:(12) ⋅ 点赞:(0)

Grafana 告警条件模块详解

📌 架构图:Grafana AlertRule 条件构建流程(文字版)

Raw Query → Resample → Math → Reduce → Classic Condition → [Trigger Alert]
                              ↘
                              → Threshold (图表辅助)

🔢 1. Math(数学处理)

🧩 作用:

对查询(如 A/B/C)进行数学表达式处理,加工计算值,适合:

  • 单位换算
  • 多数据源组合
  • 自定义逻辑

📌 常用表达式:

  • A > 90
  • A / 1024
  • (A + B) / 2
  • (A - B) / B * 100(增长率)

✅ 使用建议:

场景 建议表达式
单位转换 A / 1024 或 A * 1000
计算百分比 A / B * 100
两组差值 A - B
增长率 (A - B) / B * 100

🔻 2. Reduce(归约)

🧩 作用:

把一段时间内的多个数据点 → 单个值,方便告警判断。

🎛️ 常用 Function:

函数 含义
Last 最后一个值(常用于当前状态)
Mean 平均值(平滑噪声)
Max / Min 最大 / 最小值
Sum 总和(适用于累计)
Count 数据点数量(例如日志次数)
Difference last - first
Delta 中间所有变化值的和

🧱 Mode(数据清洗):

模式 含义 适合场景
Strict 非数字直接失败 对数据质量要求非常高
Drop non-numeric 忽略 null/错误值 数据偶尔异常,想保留有效数据
Replace non-numeric 替换成 0 或默认值 需要保持连续性时使用

✅ 使用建议:

数据类型 推荐设置
稳定的数值数据 Strict
偶尔 null 或字符串 Drop non-numeric
想计算总和/平均,不能丢点 Replace non-numeric = 0

🕒 3. Resample(时间重采样)

🧩 作用:

统一数据的时间粒度,处理不规则数据、平滑波动,利于图表美观和减少告警误报。

🧭 Resample To(目标采样频率):

  • 1m:每 1 分钟一个点
  • 10s:每 10 秒一个点
  • 1h:每小时一个点

🔽 Downsample(粗化时间粒度 → 多值合并):

策略 含义
Last 窗口最后一个值
Max 最大值
Min 最小值
Mean 平均值
Sum 总和

🔼 Upsample(细化时间粒度 → 填补空值):

策略 含义
pad 使用上一个值
backfilling 使用下一个值
fillna 使用空值 NaN

✅ 使用建议:

场景 Downsample Upsample
日志、状态 Last pad
CPU/内存等监控值 Mean pad 或 fillna
请求次数、IO等累计值 Sum pad
严格需要监测缺失情况 任意 fillna

🧮 4. Classic Condition(告警判断)

🧩 作用:

真正判断是否“触发告警”的逻辑。

🔧 配置参数:

  • WHEN:选择哪个处理结果(如 A、B、Reduce 后)
  • IS ABOVE/BELOW/EQUAL:比较方式
  • FOR:持续时间才告警(如 >90% 持续 5 分钟)

✅ 示例:

WHEN last() OF A IS ABOVE 90 FOR 5m

意思:A 的最后一个值大于 90,并且持续 5 分钟,才告警。


🎚 5. Threshold(阈值线,图表辅助)

🧩 作用:

图表上直观标出“告警阈值”,方便视觉识别告警区。

  • 对实际告警逻辑无影响
  • 配合 Classic Condition 一起用更直观

✅ 示例用法:

  • 设置红色阈值线在 80:一旦超过就是告警区域
  • 图上分颜色带:绿 < 80,黄 < 90,红 > 90

🎯 完整示例(综合运用)

目标:CPU 使用率 >90% 且持续 5 分钟告警

1. Query A:获取 CPU 使用率序列
2. Resample:每 1 分钟取一次 Mean(平滑噪音)
3. Reduce:用 Last 取最近的 1 分钟值
4. Classic Condition:A > 90 FOR 5m
5. Threshold:图表上加红线(90)

📌 总结对照表

模块 功能 核心作用
Math 数学计算 表达式处理多个查询(A+B,单位转换等)
Reduce 数据聚合 把一段时间内的值 → 一个值(用于判断)
Resample 时间重采样 统一粒度,处理稀疏或不规则时间序列
Classic Condition 告警逻辑判断 设定是否告警(条件+持续时间)
Threshold 图形辅助 可视化告警线,直观显示界限

网站公告

今日签到

点亮在社区的每一天
去签到