聚合事件处理器
聚合事件处理器将多个事件聚合成一个事件。它订阅一个主题,并在定义的间隔内将发布的*消息聚合成一个聚合主题。
选项
以下聚合事件处理器选项可以在 处理程序文件中设置。
| 名称 | 类型 | 描述 |
|---|---|---|
| interval | 持续时间 | 聚合事件的频率。间隔必须以纳秒为单位指定。 |
| topic | string | 将聚合事件发布到的主题。 |
| message | string | 一个模板字符串,其中 {{.Interval}} 和 {{.Count}} 可用于构造有意义的消息。 |
示例:处理程序文件
id: handler-id
topic: topic-name
kind: aggregate
options:
interval: 300000000000
topic: agg_5m
message: '{{.Count}} new events in the last {{.Interval}}'使用聚合事件处理器
聚合事件处理器订阅一个主题,并在指定的时间间隔内聚合发布到该主题的消息。下面的 TICKscript cpu_alert.tick 会在 CPU 空闲使用率低于 10%(或 CPU 使用率高于 90%)时将警报发布到 cpu 主题。
cpu_alert.tick
stream
|from()
.measurement('cpu')
.groupBy(*)
|alert()
.crit(lambda: "usage_idle" < 10)
.topic('cpu')使用以下命令添加并启用此 TICKscript
kapacitor define cpu_alert -tick cpu_alert.tick
kapacitor enable cpu_alert创建一个新的处理程序文件 aggregated_cpu_alerts.yaml,使用 aggregate 事件处理器,该处理器订阅 cpu 主题,聚合过去 10 分钟的警报,并将聚合消息发布到一个新的 aggr_cpu 主题。处理程序文件可以是 YAML 或 JSON。
aggr_cpu_alerts.yaml
id: aggr_cpu_alerts_10m
topic: cpu
kind: aggregate
options:
interval: 600000000000
topic: aggr_cpu
message: '{{.Count}} CPU alerts in the last {{.Interval}}'添加处理程序文件
kapacitor define-topic-handler aggr_cpu_alerts_10m.yaml聚合的 CPU 警报消息将每 10 分钟发布到 aggr_cpu 主题。关于聚合事件的进一步处理可以在 aggr_cpu 主题上配置。
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: