繁体   English   中英

普罗米修斯查询中grafana变量的多个值

[英]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" labelinstance="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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM