如何在Grafana表格中展示多个Prometheus数据源名称
该需求可以通过PromQL标签函数或模板变量组合实现,具体操作方法如下:
实现方案
方法1:PromQL内置标签注入(无需额外配置变量)
在每个Prometheus数据源的查询语句中,通过label_replace函数给查询结果新增自定义标签,标签值设置为对应数据源的名称即可,示例如下:
- 生产环境Prometheus数据源查询语句:
label_replace(up, "datasource", "生产环境Prometheus", "", "") - 测试环境Prometheus数据源查询语句:
label_replace(up, "datasource", "测试环境Prometheus", "", "")
配置完成后在Grafana表格面板的字段设置中,将datasource字段调整为可见列,每行数据就会自动匹配显示对应数据源的名称。
方法2:结合模板变量实现动态数据源适配
如果需要支持多选、动态切换展示的数据源,可配合模板变量实现:
- 新建类型为「数据源」的模板变量,指定数据源类型为Prometheus,勾选「多选」配置项,变量名可自定义为
prom_ds - 所有Prometheus查询的数据源选择为
$prom_ds,查询语句修改为label_replace(up, "datasource", "${prom_ds}", "", ""),直接读取模板变量的数据源名称作为标签值 - 在表格面板的「转换」设置中开启「多帧拼接」功能,即可将多个选中数据源的查询结果合并到同一张表格,自动按数据源分行展示。
其他替代方案
如果不想修改PromQL,Grafana 9.x及以上版本也可以直接在面板的转换规则中,给每个查询结果单独新增「固定值字段」,字段值填写对应数据源的名称,效果和标签注入完全一致。
内容的提问来源于stack exchange,提问作者FestiveHydra235
相关产品推荐
相关产品推荐

