首页 > 解决方案 > 试图让我理解我从 Prometheus 中的 Rate 和 increase 函数中得到的东西

问题描述

我正在尝试计算进出我的应用程序的 5m 条 HTTP 消息总数,在阅读了几篇文章(包括本网站上的类似讨论)之后,我认为我应该使用“增加”功能。我的流量按以下模式运行:每秒 20 条消息,每 2 分钟持续 30 秒。所以理论上如果我从 min=0 开始,5m 的总流量应该是 1800msgs。但是由于增加实际上是速率时间秒。我得到波动的价值。现在使用 1 分钟范围内的速率,我得到一条在 1.5 分钟(见图)的跨度内从 0 到 12 波动的曲线,步长为 15 秒。如果我使用 5m 范围内的“速率”,曲线会更加平坦。这本身不知道怎么解释。然后我使用“增加”来计算总 5 分钟,该曲线在 ~1240 到 ~1865 之间波动。(见附图)。我的问题:

  1. 从速率函数中得到什么,我应该将哪个值视为我的每秒?显然是 12,甚至还没有接近 20。
  2. 我应该从这样波动的增加中得到什么?我应该选择哪个值?我猜 1865 对我的流量模式更现实,但是这会根据我从客户端查询结果的时间而改变,但这使它成为一个即时查询,不是吗?我不确定这是一个 5 分钟的计数...
  3. 最后,不是计数器总是上升(重置除外),那么为什么我会看到选择和低谷?

我的抓取间隔是 10 秒。

请求模式:

请求模式

5m增加计数:

5m 增加计数

1m速率显示:

1分钟速率显示

标签: prometheus

解决方案


  1. “速率”函数计算每秒平均速率。在选择中,您每秒有 20 条消息,但只有 30 秒,因此平均而言,由于其他 30 秒内没有消息,您在 1m 中每秒大约有 10 条消息。12 的值是正确的。

  2. “增加”功能计算计数器在时间范围(5m)内增加了多少。此值根据 5m 窗口是否捕捉 30s 选择而波动。在最好的情况下,它捕获 3 个选择 x 20 msgs x 30s = 1800(图形的最高点),在最坏的情况下,它只捕获 2 个选择 x 20 个消息 x 30s = 1200(图形的最低点) .

  3. 正确,计数器总是上升,但有时计数器增加得很快,有时它增加得很慢。这里的“增加”功能只是为了显示计数器在每个时刻增加了多少。请记住,“增加”是在时间范围内计算的(在您的情况下为 5m)。


推荐阅读