Grafana仪表板变量在面板查询中不起作用

时间:2020-11-02 07:58:22

标签: prometheus grafana

我基于Prometheus数据源创建了dashbaord。
我为仪表板创建了两个变量:

第一个变量-实例:
查询:query_result(up {job =“ postgres_exporter”})
正则表达式:/。 instance =“([[^”] +)。 /

值的预览显示:
10.97.7.150:9187
10.97.7.97:9187

第二个变量-服务器:
查询:query_result(pg_settings_port {job =“ postgres_exporter”})
正则表达式:/。 server =“([[^”] +)。 /

值的预览显示:
10.97.7.150:5020
10.97.7.97:5009
10.97.7.97:5020

但是,当我尝试创建引用这两个变量的面板时:
pg_static {instance =“ $ instance”,server =“ $ server”}
面板中显示“ N / A”。

但是,如果我将带有硬编码值的查询放入面板中,它将起作用。例如:pg_static {instance =“ 10.97.7.97:9187”,job =“ postgres_exporter”,server =“ 10.97.7.97:5009”}
显示预期的版本。

任何人都可以解释出什么问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

在面板中测试变量时,是否仅为每个变量选择一个值? 如果没有(那么选择了多个值),那么grafana将通过假设您将扩展变量用作正则表达式来容纳该变量,并将变量替换为10.97.7.150:9187|10.97.7.97:9187之类的东西。 这样可以使用aregex匹配。如果您希望能够使用多个值,则只需使用=~运算符而不是=,例如:

pg_static{instance=~"$instance", server=~"$server"}

通常:在grafana中检出查询检查器以查看要发出的确切查询

相关问题