如何基于有数据的chip/sensor对实现Grafana行与面板精准重复?
解决Grafana中Chip全选时Sensor面板匹配问题
问题根源
当chip变量选择"All"时,全局的sensor变量会拉取所有chip对应的sensor集合的并集,导致每行chip重复时,都会加载全量sensor面板,而非当前chip实际存在的sensor。
解决方案
1. 调整变量配置
保留原chip变量定义不变:
label_values(node_hwmon_temp_celsius{job="$job"}, chip)
删除全局的sensor变量,改用面板级的动态查询来获取对应chip的sensor列表。
2. 配置行与面板的重复规则
- 行重复:保持按
chip变量重复,确保勾选Include all option(支持全选)。 - 面板重复:在面板的
Repeat设置中,选择Query作为重复类型,输入以下查询:
这里的label_values(node_hwmon_temp_celsius{job="$job", chip="$chip"}, sensor)$chip会自动绑定当前行的chip值,确保每个行只生成该chip下存在的sensor面板。
3. 修改面板查询语句
面板中的PromQL需要同时绑定当前行的$chip和当前面板的$sensor(由重复规则动态生成):
node_hwmon_temp_celsius{job="$job", chip="$chip", sensor="$sensor"}
4. 优化:隐藏空面板
在面板的Panel options中开启Hide empty panels,自动隐藏无数据的面板,避免无效展示。
内容的提问来源于stack exchange,提问作者Chris Young
相关产品推荐
相关产品推荐

