首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用prometheus计算分子为空时的成功率

使用prometheus计算分子为空时的成功率
EN

Stack Overflow用户
提问于 2019-06-26 18:37:24
回答 1查看 2.2K关注 0票数 2

我们有许多用例,当我们想要计算成功率,但没有成功的任务时,我们会期望成功率为0,但它是零。

让我们以这些指标为例:

代码语言:javascript
复制
http_requests_total{state="failure"} = 10

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

我想计算成功率(在本例中为0)。执行以下除法:

代码语言:javascript
复制
http_requests_total{state="success} / sum(http_requests_total) ignoring (state)

不返回数据点。

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

尝试执行以下操作:

代码语言:javascript
复制
(http_requests_total{state="success} or 0)/ sum(http_requests_total) ignoring (state)

但or运算符不起作用

我预计输出将为0,但它是“无数据点”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 19:38:13

要做到这一点并不简单,这也是为什么it is recommended不提供只在发生事情时才出现的指标的原因之一。

如果您不能在以后的阶段将无数据作为零成功率处理(例如,在Grafana中,通过使用"null as zero“选项),似乎所有适当标签都正确匹配的or版本可能是:

代码语言:javascript
复制
http_requests_total{state="success"} or
 label_replace(0 * sum without (state) (http_requests_total), "state", "success", "__name__", ".*")

这个(Ab)使用label_replacestate="success"合成元素,如果没有元素并且看起来不美观的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56770824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档