我们有许多用例,当我们想要计算成功率,但没有成功的任务时,我们会期望成功率为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)但or运算符不起作用
我预计输出将为0,但它是“无数据点”
发布于 2019-06-26 19:38:13
要做到这一点并不简单,这也是为什么it is recommended不提供只在发生事情时才出现的指标的原因之一。
如果您不能在以后的阶段将无数据作为零成功率处理(例如,在Grafana中,通过使用"null as zero“选项),似乎所有适当标签都正确匹配的or版本可能是:
http_requests_total{state="success"} or
label_replace(0 * sum without (state) (http_requests_total), "state", "success", "__name__", ".*")这个(Ab)使用label_replace与state="success"合成元素,如果没有元素并且看起来不美观的话。
https://stackoverflow.com/questions/56770824
复制相似问题