当我们想要计算成功率时有很多用例,但是没有成功的任务,我们希望成功率将为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,但它是“无数据点”
答案 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_replace
与state="success"
合成元素,其中没有元素,而且看起来也不漂亮。