使用普罗米修斯计算最大值

Ehm*_*Kah 3 prometheus

由于我是普罗米修斯新手,我不知道如何表达这个问题:“最后一天每秒处理的最大消息数是多少”。该指标被命名为messages_in_total

我试过

  • max_over_time(messages_in_total{}[1d])- 但这会返回计数器值的最大值
  • increase(messages_in_total{}[1d])- 但这会返回计数器增加的数字

我真正需要的是(伪代码)

  1. 将包含绝对 messages_in_total 的范围向量转换为每秒都有一个值的范围向量。

  2. 充分利用它

例子:

  • 初始范围向量值 = (3000,4000, 7000, 8009)
  • 调整后的范围向量值以及每秒的速率(猜测值)= (40, 70, 40)
  • max_value => 每秒处理 70 条消息

有任何想法吗?

bja*_*ski 10

有可能的。

查询示例:

max_over_time(
   irate( messages_in_total[2m] )[1d:1m]
)
Run Code Online (Sandbox Code Playgroud)

这会:

  1. 取最后 1 天的时间
  2. 1 天范围内每 1 分钟就会执行一次irate( messages_in_total[2m] )
  3. 将其组合成范围向量
  4. 对所有结果调用 max_over_time

有关更多信息,请参阅子查询文档!