[英]multiple values from grafana variable in prometheus query
我们有一种情况需要 select 来自 grafana 变量字段的多个值(实例/服务器),并且需要使用一些正则表达式将多个值传递给 Prometheus 查询,以便我可以在单个图中看到选定的主机指标。 但我无法让它发挥作用。 有人可以帮我解决这个问题吗?
让我们举个例子,如果我 select 是 host1、host2、host3 的倍数,那么查询应该看起来像这样 node_load1(instance="host1", instance="host2", instance="host3")。
希望我说清楚我的问题。
提前致谢。
请注意node_load1{instance="host1",instance="host2",instance="host3"}
不会返回任何结果,因为 label 过滤器应用and
操作,例如查询意味着:
select 具有
node_load1
名称和instance="host1"
的时间序列 label以及instance="host2"
label和instance="host2"
label
您需要对多个instance
label 值使用or
操作。 这可以通过以下查询完成,该查询使用正则表达式过滤器, instance
label:
node_load1{instance=~"host1|host2|host3"}
有关详细信息,请参阅PromQL 教程。
当为此变量选择多个 label 值时,Grafana 会自动为$var_name
模板构建value1|...|valueN
正则表达式。 因此,只需按照https://stackoverflow.com/a/59165219/274937的建议在 Grafana 的查询中使用node_load1{instance=~"$host"}
当您在查询中使用变量时,Grafana 会为您生成一个正则表达式。
我假设您有一个通过收集标签值定义的变量$host
。 前任:
label_values(node_load1, instance)
然后简单地使用请求:
node_load1{instance=~"$host"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.