速率聚合
您可以使用速率聚合来分析特定字段随时间的变化速率。 当您想要分析计数器等字段时,此类型的聚合非常有用。
例如,假设您有一个名为 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
。
您需要使用的计算取决于所选的间隔。