仅当查询结果为Nan(null)时返回0,否则返回Nan

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

这让我困惑了几个小时,我已经找到了答案,但想问这是否正确。

我有一个指标,其值始终为 1,或为 null。 该指标有 2 个标签,id 和 name。

因此,在 grafana 中,想要在统计面板中绘制指标为 1 时的标签值。

metric{id="$id"}
Legend: {{id}} - {{name}}

如果指标为空,我想显示“未连接”,据我所知,grafana 中无法使用图例之外的标签值进行查询,并且指标的值必须隐藏,所以我们只能停留在传说中。

我做了另一个查询来执行相反的操作,基本上,如果查询为 1,则返回 null,如果查询为 null,则返回 0。 花了一些时间后我想出了这个,有效但是

(metric{id="$id"} default 0) == 0
Legend: "Not Connected"

我的问题是为什么我们不能检查

nulls
,例如
(nil if (metric{id="$id"} == 1)) default 0
(0 if (metric{id="$id"} == nil) default nil
对我来说似乎更具描述性,不知道出于好奇还有另一种方法可以做到这一点。

prometheus grafana victoriametrics metricsql
1个回答
0
投票
(metric{id="$id"} default 0) == 0
Legend: "Not Connected"

仅当查询为空时返回 0。 else 如果指标始终为 1 或 null,则返回 null。

© www.soinside.com 2019 - 2024. All rights reserved.