Ani*_*mar 4 grafana prometheus promql
我们有一种情况,我们需要从 grafana 变量字段中选择多个值(实例/服务器),并且需要使用一些正则表达式将多个值传递给 Prometheus 查询,以便我可以在单个图中看到选定的主机指标。但我无法让它工作。有人可以帮我解决这个问题。
让我们举个例子,如果我选择多个值 host1,host2,host3 然后查询应该看起来像这样 node_load1(instance="host1", instance="host2", instance="host3")。
希望我说清楚我的问题。
提前致谢。
val*_*ala 18
请注意,node_load1{instance="host1",instance="host2",instance="host3"}不会返回任何结果,因为标签过滤器是通过and操作应用的,例如查询意味着:
选择带有
node_load1名称和instance="host1"标签以及带有instance="host2"标签和带有instance="host2"标签的时间序列
or您需要对多个标签值使用操作instance。这可以通过以下查询来完成,该查询使用正则表达式过滤器作为instance标签:
node_load1{instance=~"host1|host2|host3"}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅PromQL 教程。
当为此变量选择多个标签值时,Grafana 会自动构建模板value1|...|valueN的正则表达式。$var_name因此,只需node_load1{instance=~"$host"}按照/sf/answers/4141565361/的建议在 Grafana 中的查询中使用即可
当您在查询中使用变量时,Grafana 会为您生成一个正则表达式。
我假设您有一个$host通过收集标签值定义的变量。前任:
label_values(node_load1, instance)
Run Code Online (Sandbox Code Playgroud)
然后简单地使用请求:
node_load1{instance=~"$host"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8720 次 |
| 最近记录: |