速率聚合

编辑

您可以使用速率聚合来分析特定字段随时间变化的速率。当您想要分析计数器之类的字段时,此类型的聚合非常有用。

例如,假设您有一个名为 restarts 的计数器字段,它在每次服务重启时都会递增。您可以使用速率聚合来获取在特定时间窗口内(例如,每天)服务重启次数超过 X 次的告警。

速率计算方法
编辑

告警规则中使用的速率是通过比较前一个桶中字段的最大值与当前桶中字段的最大值,然后将结果除以所选时间间隔内的秒数来计算的。例如,如果 restarts 的值增加,则速率将计算如下:

(当前桶中的最大值 - 前一个桶中的最大值)/时间间隔(秒)

在这个例子中,我们假设每个桶只有一个文档,包含以下数据:

{
"timestamp": 0000,
"restarts": 0
}

{
"timestamp": 60000,
"restarts": 1
}

我们假设时间戳是毫秒级的 UNIX 时间戳,并且我们从 1970 年 1 月 1 日星期四凌晨 12:00:00 开始计数。在这种情况下,速率将按如下方式计算:

(当前桶中的最大值 - 前一个桶中的最大值)/时间间隔(秒),其中

  • 当前桶中的最大值 [now-1m → now]: 1
  • 前一个桶中的最大值 [now-2m → now-1m]: 0
  • 时间间隔(秒): 60

速率计算结果为:(1 - 0) / 60 = 0.0166666666667

如果您希望在 1 分钟窗口内重启速率高于 1 时发出告警,则应将阈值设置为高于 0.0166666666667

您需要使用的计算取决于所选的时间间隔。