普罗米修斯比率与除法不起作用

Posted

技术标签:

【中文标题】普罗米修斯比率与除法不起作用【英文标题】:Prometheus ratio with division not working 【发布时间】:2021-12-28 16:26:43 【问题描述】:

我正在尝试计算一段时间内请求错误的百分比。 如果我没记错的话,这应该给我 1:

sum(sum_over_time(http_client_requestsenv=~"env"))/sum(sum_over_time(http_client_requestsenv=~"env"))

但是我得到了一个超过 200 的随机数。我想我得到了所有 1 的总和,我应该使用平均值还是我做错了什么?

【问题讨论】:

您能否提供一些http_client_requests 的示例值? 【参考方案1】:

是的,你得到的是所有的总和,如果你将“sum”替换为“avg”(就像你建议的那样),你会得到“1”作为结果。

注意:您的 promql 表达式不正确,“sum_over_time”函数中缺少范围向量选择器(例如:[5h]、[1d] 等)。

【讨论】:

我通常在 grafana 中选择一个时间范围,所以我不必手动设置它 当我将[$__range] 添加到sum_over_time 时,我认为它开始工作了 “开始工作”是什么意思?您是在说 Grafana 中选择的时间范围吗?是的,您需要将 [$__range] 添加到表达式中。还是您在谈论原始问题(为什么要“获得超过 200 的随机数”)。 对不起,我错了,它也不起作用。最后我不得不使用一些转换来计算失败请求的全局平均值

以上是关于普罗米修斯比率与除法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从普罗米修斯抓取中排除 Kubernetes 命名空间

普罗米修斯与正则表达式查询不匹配

好文转发Java微服务监控及与普罗米修斯集成

普罗米修斯Prometheus+Grafana,监控搭建与界面基础配置

普罗米修斯Prometheus+Grafana,监控搭建与界面基础配置

我们如何编写警报规则与普罗米修斯警报规则的先前值进行比较