我知道
rate(xyz[5m]) * 60
是每分钟xyz的速率,5分钟内的平均值。
编辑:(
$__rate_interval
和$__interval
)
Prometheus 定期从您的应用程序获取数据。 Grafana 定期从 Prometheus 获取数据。 Grafana 不知道 Prometheus 轮询您的应用程序数据的频率。 Grafana 将通过查看配置并假设每次抓取都会给我们一个数据点来估计这一时间。然后,
$__interval
变量扩展到图中两个数据点之间的持续时间(请注意,这仅适用于小时间范围和高分辨率,因为$__interval
的预期用例是在时间范围很宽。请参阅$__interval的近似计算。)
如果每个系列中每两个数据点之间的时间距离为 15 秒,则在速率函数中使用小于
[15s]
的值作为间隔是没有意义的。速率函数在至少 4 个数据点时效果最佳。因此,[1m]
比 [15s]
和 [1m]
之间的任何内容都要好得多。这就是 $__rate_interval
试图实现的目标:猜测速率函数的最小合理区间。
我个人认为,如果您的应用程序提供稀疏数据(每次抓取少于一个数据点),这并不总是有效。在这些情况下,我更喜欢使用固定间隔,例如 10m 甚至 1h 或 1d。间隔需要足够大,才能为指标提供足够的数据点,以便与速率函数配合使用。
另一种方法是使用
$__rate_interval
和 $__interval
中的任何一个,同时将 Grafana UI 中查询的 Min step 参数设置得足够大。