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 string , value string ) | 向所有数据点添加静态标签。标签可以多次调用。 |
writeConsistency ( value string ) | 写入数据时要使用的写入一致性。 |
链式方法
属性
属性方法修改调用节点上的状态。它们不会向管道添加另一个节点,并且始终返回对调用节点的引用。属性方法使用 .
运算符标记。
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...
id
和 message
警报属性可以通过“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
此页是否对您有帮助?
感谢您的反馈!