1 官网文档解读
irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。
所以官网文档说:irate适合快速变化的计数器(counter),而rate适合缓慢变化的计数器(counter)。
根据以上算法也可以理解为对于快速变化的计数器,如果使用rate,因为使用了平均值,很容易把峰值削平。除非把时间间隔设置得足够小,就能够减弱这种效应。
2 函数解读
rate()
rate(v range-vector)
计算范围向量中时间序列的每秒平均平均增长率。单调性中断(例如由于目标重启而导致的计数器重置)会自动进行调整。同样,计算会外推到时间范围的末尾,从而允许遗漏刮擦或刮擦周期与该范围的时间段不完全对齐。
以下示例表达式返回范围向量中每个时间序列在最近5分钟内测得的HTTP请求的每秒速率:
rate(http_requests_total{job="api-server"}[5m])
irate()
irate(v range-vector)
计算范围向量中时间序列的每秒瞬时增加率。这基于最后两个数据点。单调性中断(例如由于目标重启而导致的计数器重置)会自动进行调整。
下面的示例表达式返回范围向量中每个时间序列的两个最近数据点的HTTP请求的每秒速率,该速率最多可向后5分钟查询:文章来源:https://www.toymoban.com/news/detail-838551.html
irate(http_requests_total{job="api-server"}[5m])文章来源地址https://www.toymoban.com/news/detail-838551.html
到了这里,关于Prometheus监控实战之rate与irate的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!