gpt4 book ai didi

prometheus - rate() 函数如何平均请求持续时间?

转载 作者:行者123 更新时间:2023-12-02 18:07:13 27 4
gpt4 key购买 nike

引自普罗米修斯 Count and sum of observations文档:

To calculate the average request duration during the last 5 minutes from a histogram or summary called http_request_duration_seconds, use the following expression:rate(http_request_duration_seconds_sum[5m]) / rate(http_request_duration_seconds_count[5m])

我应该说我明白了:

  1. rate 函数的作用
  2. 即时向量与距离向量有何不同
  3. 如果我想获得平均请求持续时间增长率,我肯定会使用该表达式

但是我对请求持续时间的增加率不感兴趣,而是对请求持续时间本身感兴趣!

有人可以解释为什么每个人在任何给定时刻寻找平均计数/值时都必须使用 rate 函数,而它没有提供该函数吗?

附言似乎有一个 duplicate question with a checked answer ,但是其中的所有答案都解释了 rate 函数是什么,它是如何做的等等。我已经理解了 rate 函数的作用。我只是不明白为什么我们应该首先使用它,尤其是当它提供的结果与我们正在寻找的东西无关时。

最佳答案

让我们展示从 Prometheus 手册中引用的公式,利用名为 rate() 的函数计算您要查找的确切值。

根据计数器的工作方式,我们知道每次名为http_request_duration_seconds_sum 的计数器都会考虑一个新值,即自上次发生的所有请求的持续时间总和,它将此总和添加到其先前的值。因此,rate(http_request_duration_seconds_sum[5m]) 是 5 分钟内发生的请求持续时间的总和除以 5 分钟。

每次计数器 http_request_duration_seconds_count 考虑一个新值,即上次发生的请求数时,此计数器会将此请求数添加到其先前值。因此,rate(http_request_duration_seconds_count[5m]) 是 5 分钟内发生的请求数除以 5 分钟。

因此,让我们将前两段中发现的公式注入(inject)到以下分数中:

rate(http_request_duration_seconds_sum[5m])/rate(http_request_duration_seconds_count[5m])

等于:

((sum of the durations of the requests that occurred during 5 minutes) / 5 minutes) / ((number of requests that occurred during 5 minutes) / 5 minutes)

您可以通过删除 5 分钟 来简化此公式,因为它存在于分子和分母中。

最后得到如下公式:

rate(http_request_duration_seconds_sum[5m])/rate(http_request_duration_seconds_count[5m])

等于下面的:

(sum of the durations of the requests that occurred during 5 minutes)/(number of requests that occurred during 5 minutes)

此等式的第二部分是您要计算的值:5 分钟内请求的平均持续时间。这就是使用此等式的第一部分计算它的原因。

关于prometheus - rate() 函数如何平均请求持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73009173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com