速率聚合

编辑

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

例如,假设您有一个名为 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 分钟窗口内 restarts 的速率高于 1 时发出警报,则应将阈值设置为高于 0.0166666666667

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