使用 Prometheus 计数器跟踪事件
Track Events with Prometheus Counters
使用 Prometheus 处理每秒的事情真的很棒,我在 rate
和 irate
上取得了巨大的成功。我只是不知道如何绘制很少发生但很重要的事情。
所以我有一个正在递增的计数器,叫做 job_failed
。每当发生这种情况时,它就会出现在我的即时向量中。如果我直接绘制它,它总是会上升并且我会在图中看到一个凸起,但这并没有给我足够明确的指示表明工作失败了。所以我想让它成为归零图中的尖峰。
如果我执行 rate(job_failed[15s])
我会得到我的尖峰 - 但它是每秒尖峰所以它的值为 0.1 虽然我想要的变化是 1。
我试过 increase(job_failed[1m])
但这也没有正确加起来,偶尔给我留下 2.18 等值
有没有办法只看到一个峰值?这似乎是一件微不足道的事情,但我想不通。
对于类似的要求,我使用了根据要求配置阈值的增量函数。
Prometheus 更适合高容量事件而不是低容量事件,因为我们如何保持事物的平均准确性会出现低容量工件。
因此,例如 rate(job_failed[15s])
在 15 秒内增加 1 是 1/15 = 0.066/s。四舍五入可以使该显示为 0.1。
https://www.youtube.com/watch?v=67Ulrq6DxwA 详细介绍了这一切的工作原理。
简而言之就是你现在正在做的就是这样做的方法。
使用 Prometheus 处理每秒的事情真的很棒,我在 rate
和 irate
上取得了巨大的成功。我只是不知道如何绘制很少发生但很重要的事情。
所以我有一个正在递增的计数器,叫做 job_failed
。每当发生这种情况时,它就会出现在我的即时向量中。如果我直接绘制它,它总是会上升并且我会在图中看到一个凸起,但这并没有给我足够明确的指示表明工作失败了。所以我想让它成为归零图中的尖峰。
如果我执行 rate(job_failed[15s])
我会得到我的尖峰 - 但它是每秒尖峰所以它的值为 0.1 虽然我想要的变化是 1。
我试过 increase(job_failed[1m])
但这也没有正确加起来,偶尔给我留下 2.18 等值
有没有办法只看到一个峰值?这似乎是一件微不足道的事情,但我想不通。
对于类似的要求,我使用了根据要求配置阈值的增量函数。
Prometheus 更适合高容量事件而不是低容量事件,因为我们如何保持事物的平均准确性会出现低容量工件。
因此,例如 rate(job_failed[15s])
在 15 秒内增加 1 是 1/15 = 0.066/s。四舍五入可以使该显示为 0.1。
https://www.youtube.com/watch?v=67Ulrq6DxwA 详细介绍了这一切的工作原理。
简而言之就是你现在正在做的就是这样做的方法。