Documentation

聚合事件处理器

聚合事件处理器将多个事件聚合为一个单一事件。它订阅一个主题,并在定义的时间间隔内将发布的消息聚合到一个聚合主题中。

选项

以下聚合事件处理器选项可以在 处理器文件 中设置。

名称类型描述
intervalduration聚合事件的频率。Interval 必须以纳秒为单位指定。
topic字符串用于发布聚合事件的主题。
message字符串一个模板字符串,其中 {{.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 主题上配置对聚合事件的进一步处理。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版现已公开发布 Alpha 版本

InfluxDB 3 开源版现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可授权。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看