我基于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”}
显示预期的版本。
任何人都可以解释出什么问题吗?
谢谢
答案 0 :(得分:0)
在面板中测试变量时,是否仅为每个变量选择一个值?
如果没有(那么选择了多个值),那么grafana将通过假设您将扩展变量用作正则表达式来容纳该变量,并将变量替换为10.97.7.150:9187|10.97.7.97:9187
之类的东西。
这样可以使用aregex匹配。如果您希望能够使用多个值,则只需使用=~
运算符而不是=
,例如:
pg_static{instance=~"$instance", server=~"$server"}
通常:在grafana中检出查询检查器以查看要发出的确切查询