PromQL 平均值与 avg_over_time

RJt*_*ing 10 promql

随着时间的推移,函数不支持 by/without 语法。使用 avg_over_time(metric[1h]) 和 avg(metric[1h]) 之间的数学差异是什么?可以用具有相同结果的函数(在本例中为 avg)替换随时间变化的函数吗?谢谢!

val*_*ala 22

avg_over_time(m[d])函数执行以下操作:

  • 它选择所有具有名称的时间序列m
  • d然后,对于每个选定的时间序列,它会计算图表上每个点之前的时间范围内原始样本的平均值。

avg(m)函数执行以下操作:

  • 它选择所有具有名称的时间序列m
  • 然后,对于每个选定的时间序列,它会选择图表上每个点之前的最后一个原始样本值。请参阅这些文档以了解更多详细信息。
  • 然后,对于图表上的每个点,它都会计算每个时间序列的选定值的平均值。

正如您所看到的,avg_over_time()avg()是完全不同的函数 -avg_over_time()计算每个选定时间序列的不同平均值,同时avg()计算选定时间序列的平均值。

  • 如果您需要计算给定“[d]”时间范围内多个时间序列的数据点的平均值,则可以使用以下查询:“sum(sum_over_time(m[d])) by (...) / sum(count_over_time(m[d])) by (...)` (2认同)