基于 Grafana 查询变量值的 PromQL if/else 表达式

问题描述 投票:0回答:1

如何根据 Grafana 查询变量的值在 PromQL 中合并 if/else 逻辑?

if($query_variable == "ALL")
    <a modified query>
else
    <the primary query>

对于

$query_variable
的单个值,该值将过滤
<the primary query>
的结果。但是,
<the primary query>
不适用于多个
$query_variable
值,因此需要
<a modified query>
才能查看未过滤的结果。

prometheus grafana promql grafana-variable
1个回答
0
投票

在 promQL 中没有直接的方法来实现基于任意外部变量的 if-else 语句。

但是,通过使用函数

absent
、向量匹配和布尔逻辑的一些技巧,我们可以构建所需的内容。


让我们从查询开始,如果变量等于

ALL
,则返回值。
由于您无法直接比较 promQL 中的字符串,因此我们需要将它们放入某些伪指标的标签中。这可以通过
© www.soinside.com 2019 - 2024. All rights reserved.