速率聚合
您可以使用速率聚合来分析特定字段随时间变化的速率。当您想要分析诸如计数器之类的字段时,这种聚合类型非常有用。
例如,假设您有一个名为 restarts 的计数器字段,它在服务每次重启时都会递增。您可以使用速率聚合,以便在服务在特定时间窗口(例如,每天)内重启超过 X 次时收到警报。
警报规则中使用的速率通过比较当前存储桶中字段的最大值与前一个存储桶中字段的最大值,然后将结果除以所选间隔内的秒数来计算。例如,如果 restarts 的值增加,速率的计算方式如下
(max_value_in_current_bucket - max_value_in_previous_bucket)/interval_in_seconds
在此示例中,假设每个存储桶有一个文档,且数据如下
{
"timestamp": 0000,
"restarts": 0
}
{
"timestamp": 60000,
"restarts": 1
}
假设时间戳是以毫秒为单位的 UNIX 时间戳,并且我们从 1970 年 1 月 1 日星期四 12:00:00 AM 开始计数。在这种情况下,速率的计算方式如下
(max_value_in_current_bucket - max_value_in_previous_bucket)/interval_in_seconds,其中
max_value_in_current_bucket[now-1m → now]:1max_value_in_previous_bucket[now-2m → now-1m]:0interval_in_seconds: 60
速率计算结果为:(1 - 0) / 60 = 0.0166666666667
如果您想在 1 分钟窗口内重启速率超过 1 时发出警报,您需要将阈值设置为高于 0.0166666666667。
您需要使用的计算方式取决于所选的间隔。