Grafana告警配置求助:无法在注解中展示Top3高CPU进程
Grafana告警无法获取Top3进程数据的排查方案
检查告警规则的查询组成
你的$values里只有A和C,说明Query B没被纳入告警规则的查询列表。需确认:- 告警规则中是否将Query B添加为额外查询(不能仅在面板里单独配置);
- Query B的查询ID是否确实设为了
B(Grafana会用查询ID作为$values的键)。
验证Query B的独立查询有效性
在Grafana Explore中单独执行Query B,确认压测期间能返回正确的Top3进程数据:- 检查查询语句是否正确,比如是否包含
topk(3, ...),并且关联了instance="grafana-test"的标签过滤; - 如果Explore里也没结果,排查process exporter的采集问题:比如是否配置了正确的进程过滤规则,Prometheus是否成功抓取到该exporter的指标。
- 检查查询语句是否正确,比如是否包含
修正通知模板的变量引用方式
即便Query B被正确纳入,多值结果也不能用{{$labels.B0}}引用:- 若Query B返回带进程标签的时间序列,需要遍历
$values.B的结果,示例模板:{{ range $index, $value := $values.B }} Top{{ add $index 1 }}进程: {{ $value.labels.process }} - CPU使用率: {{ $value.Value }}% {{ end }}
- 若Query B返回带进程标签的时间序列,需要遍历
检查告警规则的评估配置
- 确保Query B和Query A的评估周期一致,避免数据不同步;
- 查看告警规则的Reduce/Calculate环节,是否误过滤了Query B的结果,比如只针对Query A进行告警判断,未保留B的数据集。
内容的提问来源于stack exchange,提问作者Johnny Yeng
相关产品推荐
相关产品推荐

