PromQL分数查询在期望标量值时返回“ null”

时间:2018-10-01 15:23:26

标签: prometheus promql

我有一个布尔量度(即样本仅是01的整数),称为my_boolean_metric。它具有各种标签,包括范围在值outcome上的标签{"success", "failure"}。我正在尝试一个分数查询,该查询应始终返回介于01之间的浮点值。

分子查询返回与给定标签匹配的my_boolean_metric时间序列的数目,如果没有这样的时间序列,则返回0

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"nirvana", instance=~"bar", outcome="success"})))

返回的值是介于0n之间的整数。

分母查询返回与给定标签匹配的my_boolean_metric时间序列数,与分子查询不同,分母查询不关心“结果”标签。

count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar"})

此值始终是整数n

以下分数查询返回null(即Prometheus / Thanos UI中的“未找到数据点”),即使每个经过测试的查询都返回一个整数。

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}))) / count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar"})

以下带有硬编码分母的分数查询的确成功。

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}))) / 9

我的分数查询怎么了?

0 个答案:

没有答案