在将数据发送到 InfluxDB 之前,我可以使用 Kapacitor 处理数据吗?

mat*_*516 3 influxdb kapacitor

我正在引导一个全新的 TICK 堆栈,并且非常喜欢整个系统。. . 然而,关于 Kapacitor 的一点让我感到困惑。

如果您查看此处的图表:https://www.influxdata.com/time-series-platform/kapacitor/,有一个箭头将 Telegraf 连接到 Kapacitor。Telegraf 可以将指标数据直接发送到 Influx,这让我想知道通过 Kapacitor 转发到 Influx 的用例是什么。

唯一想到的用例是您可以将处理逻辑从代理插件移到 Kapacitor 中,从而最大限度地减少代理的占用空间。

长话短说,我在这里遗漏了什么,是从 Kapacitor 到 Influx 的箭头所暗示的用例吗?

seb*_*o91 5

Kapacitor 使您能够处理数据流(或从现有的 influxdb 实例读取)并写出到 influxdb。这样做的好处是有一个单独的过程来处理来自主要后端的数据处理。

一个经典的例子是下采样。如果您想直接在 influxdb 中执行此操作,则需要处理连续查询来为您执行此操作……但是管理起来有些麻烦。Kapacitor 可以帮助使这更容易,如下所示

stream
|from()
    .database('telegraf')
    .measurement('cpu')
    .groupBy(*)
|window()
    .period(5m)
    .every(5m)
    .align()
|mean('usage_idle')
    .as('usage_idle')
|influxDBOut()
    .database('telegraf')
    .retentionPolicy('autogen')
    .measurement('mean_cpu_idle')
    .precision('s')
Run Code Online (Sandbox Code Playgroud)

希望有帮助!