rate() 函数用于计算时间序列在指定时间范围内的平均增长率,它通常用于计算指标(如HTTP请求速率、错误率等)的速率。
rate() 函数会计算在指定时间范围内时间序列样本的平均增长率。它通过对时间范围内相邻样本点之间的差值进行平均,然后除以时间间隔,来得到速率值。这个速率值表示每单位时间(通常是每秒)指标的变化量。
rate() 函数对于计算短时间范围内的速率可能不够准确,因为它依赖于时间范围内的样本点数量。如果样本点过少,计算出的速率可能会受到较大影响。因此,在使用rate()函数时,应该根据具体情况选择合适的时间范围,并考虑数据的稳定性和可靠性。
注意:rate() 函数计算的是平均增长率,而不是瞬时速率。它适用于指标在指定时间范围内相对稳定或具有线性增长趋势的情况。如果指标存在突然的跳变或非线性增长,rate() 函数的结果可能会受到影响。
rate() 函数的基本语法是:
rate(<vector>[<duration>])
参数说明:
<vector> 是一个范围向量选择器,指定了要进行计算的时间序列。
<duration> 是一个可选的持续时间参数,表示计算速率的时间范围。如果省略,默认为5分钟(5m)。
如果你有一个名为 prometheus_http_requests_total 的时间序列,记录了 HTTP 请求的总数,并且你想要计算最近5分钟内的平均请求速率,你可以使用以下查询:
rate(prometheus_http_requests_total[5m])
上面查询将返回一个瞬时向量,其中包含了 prometheus_http_requests_total 指标在最近5分钟内的平均增长率,结果将以每秒的变化量表示。运行效果如下图: