2

我有一个布尔度量(即样本只有整数01)称为my_boolean_metric. 它有各种标签,包括outcome范围在 values上的标签{"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"})))

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

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

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

this 的值始终是整数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

我的分数查询有什么问题?

4

0 回答 0