文档文档

KapacitorLoopbackNode

kapacitorLoopback 节点将数据写回 Kapacitor 流。要将数据写入远程 Kapacitor 实例,请使用 InfluxDBOutNode

示例

|kapacitorLoopback()
  .database('mydb')
  .retentionPolicy('myrp')
  .measurement('errors')
  .tag('kapacitor', 'true')
  .tag('version', '0.2')

注意无限循环

使用 KapacitorLoopback 节点有可能创建无限循环。请注意确保不要将任务链接在一起形成循环。

避免多订阅时的名称冲突

在使用 KapacitorLoopback 节点时,不要在多个 InfluxDB 实例或集群中订阅相同名称的数据库和保留策略。如果 Kapacitor 订阅了多个 InfluxDB 实例,请使每个数据库和保留策略组合唯一。例如

influxdb_1
  └─ db1/rp1

influxdb_2
  └─ db2/rp2

可用统计信息

  • points_written:写回 Kapacitor 的点数

构造函数

链式方法描述
kapacitorLoopback ( )创建一个 kapacitor 回送节点,该节点会将数据作为流重新发送到 Kapacitor 中。

属性方法

Setter 方法描述
database ( value string)数据库名称。
measurement ( value string)度量的名称。
quiet ( )抑制此节点的所有错误日志事件。
retentionPolicy ( value string)保留策略的名称。
tag ( key stringvalue string)为所有数据点添加静态标签。标签可以调用多次。

链式方法

Deadman, Stats


属性

属性方法会修改调用节点的状态。它们不会向管道添加新节点,并且始终返回对调用节点的引用。属性方法使用 . 运算符标记。

数据库

数据库名称。

kapacitorLoopback.database(value string)

Measurement

度量的名称。

kapacitorLoopback.measurement(value string)

Quiet

抑制此节点的所有错误日志事件。

kapacitorLoopback.quiet()

RetentionPolicy

保留策略的名称。

kapacitorLoopback.retentionPolicy(value string)

标签

为所有数据点添加静态标签。标签可以调用多次。

kapacitorLoopback.tag(key string, value string)

链式方法

链式方法在管道中创建一个新的节点作为调用节点的子节点。它们不会修改调用节点。链式方法使用 | 运算符标记。

死人开关(Deadman)

用于创建低吞吐量警报(即死人开关)的辅助函数。

  • 阈值:如果吞吐量低于每 points/interval 的点数,则触发警报。
  • 间隔:检查吞吐量的频率。
  • 表达式:可选的表达式列表,也用于评估。对于按时警报很有用。

示例

    var data = stream
        |from()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |deadman(100.0, 10s)
    //Do normal processing of data
    data...

以上等同于以下示例

    var data = stream
        |from()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |stats(10s)
            .align()
        |derivative('emitted')
            .unit(10s)
            .nonNegative()
        |alert()
            .id('node \'stream0\' in task \'{{ .TaskName }}\'')
            .message('{{ .ID }} is {{ if eq .Level "OK" }}alive{{ else }}dead{{ end }}: {{ index .Fields "emitted" | printf "%0.3f" }} points/10s.')
            .crit(lambda: "emitted" <= 100.0)
    //Do normal processing of data
    data...

idmessage 警报属性可以通过 'deadman' 配置部分全局配置。

由于 AlertNode 是最后一个组件,因此可以像往常一样对其进行进一步修改。示例

    var data = stream
        |from()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    data
        |deadman(100.0, 10s)
            .slack()
            .channel('#dead_tasks')
    //Do normal processing of data
    data...

您可以指定额外的 lambda 表达式来进一步限制死人开关的触发时间。示例

    var data = stream
        |from()...
    // Trigger critical alert if the throughput drops below 100 points per 10s and checked every 10s.
    // Only trigger the alert if the time of day is between 8am-5pm.
    data
        |deadman(100.0, 10s, lambda: hour("time") >= 8 AND hour("time") <= 17)
    //Do normal processing of data
    data...
kapacitorLoopback|deadman(threshold float64, interval time.Duration, expr ...ast.LambdaNode)

返回:AlertNode

Stats

创建一个新的数据流,其中包含节点的内部统计信息。interval 表示基于实际时间发出统计信息的频率。这意味着 interval 时间与源节点接收的数据点的时间无关。

kapacitorLoopback|stats(interval time.Duration)

返回:StatsNode


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2