分子为空时使用普罗米修斯计算成功率

时间:2019-06-26 10:37:24

标签: prometheus

当我们想要计算成功率时有很多用例,但是没有成功的任务,我们希望成功率将为0,但是没有。

让我们以这些指标为例:

http_requests_total{state="failure"} = 10

http_requests_total{state="succes"} - never happened so there is no value at all

我想计算成功率(在这种情况下为0)。正在执行以下项的划分:

http_requests_total{state="success} / sum(http_requests_total) ignoring (state)

不返回任何数据点。

有什么建议吗?我做错了吗?

尝试执行:

(http_requests_total{state="success} or 0)/ sum(http_requests_total) ignoring (state)

但是或运算符不起作用

我希望输出为0,但它是“无数据点”

1 个答案:

答案 0 :(得分:0)

这并不是那么简单,这就是it is recommended不具有仅在发生某些事情时才会显示的指标的原因之一。

如果以后无法将任何数据作为零成功率处理(例如,在Grafana中,通过使用“零为零”选项) 似乎所有正确标签都正确匹配的or版本可能是:

http_requests_total{state="success"} or
 label_replace(0 * sum without (state) (http_requests_total), "state", "success", "__name__", ".*")

这(ab)使用label_replacestate="success"合成元素,其中没有元素,而且看起来也不漂亮。