速率聚合编辑

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

例如,假设您有一个名为 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

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