这让我困惑了几个小时,我已经找到了答案,但想问这是否正确。
我有一个指标,其值始终为 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
对我来说似乎更具描述性,不知道出于好奇还有另一种方法可以做到这一点。
(metric{id="$id"} default 0) == 0
Legend: "Not Connected"
仅当查询为空时返回 0。 else 如果指标始终为 1 或 null,则返回 null。