使用 Prometheus 计数器跟踪事件

问题描述 投票:0回答:3

使用 Prometheus 处理每秒的事情确实很棒,我在

rate
irate
方面取得了巨大成功。我只是不知道如何绘制很少发生但很重要的事情。

所以我有一个正在递增的计数器,称为

job_failed
。每当这种情况发生时,它就会出现在我的即时向量中。如果我直接绘制它,它总是会上升,并且我会在图表中看到一个凸起,但这并没有给我足够清晰的指示,表明作业失败了。所以我想让它成为归零图中的一个尖峰。

如果我执行

rate(job_failed[15s])
我会得到峰值 - 但它是每秒峰值,因此它的值是 0.1,尽管我想要的更改是 1。 我尝试过
increase(job_failed[1m])
但这也没有正确相加,偶尔会给我留下 2.18 等值。

有没有办法只看到一个尖峰?这似乎是一件相当微不足道的事情,但我无法弄清楚。

monitoring prometheus
3个回答
1
投票

Prometheus 比低量事件更适合高量事件,因为在低量事件中,我们如何保持平均结果准确会出现伪影。

例如,

rate(job_failed[15s])
在 15 秒内增加 1 就是 1/15 = 0.066/s。四舍五入可能会显示为 0.1。

https://www.youtube.com/watch?v=67Ulrq6DxwA 更详细地介绍了这一切是如何工作的。

简短的版本就是你现在正在做的就是这样做的方法。


0
投票

我得到的最接近的服务器错误是:

按(主机名)求和(增加(job_failed_count {app_name =“foo”} [1m]))


-1
投票

对于类似的要求,我使用了 delta 函数,并根据要求配置了阈值。

https://prometheus.io/docs/querying/functions/#delta

© www.soinside.com 2019 - 2024. All rights reserved.