文档文档

InfluxDBOutNode

influxDBOut 节点将接收到的数据写入 InfluxDB。

示例

stream
  |from()
    .measurement('requests')
  |eval(lambda: "errors" / "total")
    .as('error_percent')
  // Write the transformed data to InfluxDB
  |influxDBOut()
    .database('mydb')
    .retentionPolicy('myrp')
    .measurement('errors')
    .tag('kapacitor', 'true')
    .tag('version', '0.2')

可用统计信息

  • points_written: 写入 InfluxDB 的点数
  • write_errors: 尝试写入 InfluxDB 时发生的错误数

构造函数

链式方法描述
influxDBOut ( )创建一个 influxdb 输出节点,该节点将传入数据存储到 InfluxDB 中。

属性方法

设置器描述
buffer ( value int64)写入 InfluxDB 时要缓冲的点数。默认值:1000
cluster ( value string)要连接的 InfluxDB 实例的名称。如果为空,则将使用配置的默认值。
create ( )Create 指示在任务启动时将创建数据库和保留策略。如果保留策略名称为空,则不会指定保留策略,并将创建默认保留策略名称。
database ( value string)数据库的名称。
flushInterval ( value time.Duration)即使缓冲区未满,也在间隔后将点写入 InfluxDB。默认值:10 秒
measurement ( value string)指标的名称。
precision ( value string)写入数据时要使用的精度。
quiet ( )禁止来自此节点的所有错误日志记录事件。
retentionPolicy ( value string)保留策略的名称。
tag ( key stringvalue string)向所有数据点添加静态标签。标签可以多次调用。
writeConsistency ( value string)写入数据时要使用的写入一致性。

链式方法

Deadman, Stats


属性

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

Buffer

写入 InfluxDB 时要缓冲的点数。默认值:1000

influxDBOut.buffer(value int64)

Cluster

要连接的 InfluxDB 实例的名称。如果为空,则将使用配置的默认值。

influxDBOut.cluster(value string)

Create

Create 指示在任务启动时将创建数据库和保留策略。如果保留策略名称为空,则不会指定保留策略,并将创建默认保留策略名称。

如果数据库已存在,则不会发生任何事情。

influxDBOut.create()

Database

数据库的名称。

influxDBOut.database(value string)

FlushInterval

即使缓冲区未满,也在间隔后将点写入 InfluxDB。默认值:10 秒

influxDBOut.flushInterval(value time.Duration)

Measurement

指标的名称。

influxDBOut.measurement(value string)

Precision

写入数据时要使用的精度。

influxDBOut.precision(value string)

Quiet

禁止来自此节点的所有错误日志记录事件。

influxDBOut.quiet()

RetentionPolicy

保留策略的名称。

influxDBOut.retentionPolicy(value string)

Tag

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

influxDBOut.tag(key string, value string)

WriteConsistency

写入数据时要使用的写入一致性。

influxDBOut.writeConsistency(value string)

链式方法

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

Deadman

用于在低吞吐量(又名“死人开关”)时创建警报的辅助函数。

  • 阈值:如果吞吐量在 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...
influxDBOut|deadman(threshold float64, interval time.Duration, expr ...ast.LambdaNode)

返回:AlertNode

Stats

创建一个新的数据流,其中包含节点的内部统计信息。该间隔表示基于实时发出统计信息的频率。这意味着间隔时间独立于源节点正在接收的数据点的时间。

influxDBOut|stats(interval time.Duration)

返回:StatsNode


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

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

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

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

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

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