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 string, value string) | 为所有数据点添加静态标签。标签可以调用多次。 |
链式方法
属性
属性方法会修改调用节点的状态。它们不会向管道添加新节点,并且始终返回对调用节点的引用。属性方法使用 . 运算符标记。
数据库
数据库名称。
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...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...kapacitorLoopback|deadman(threshold float64, interval time.Duration, expr ...ast.LambdaNode)返回:AlertNode
Stats
创建一个新的数据流,其中包含节点的内部统计信息。interval 表示基于实际时间发出统计信息的频率。这意味着 interval 时间与源节点接收的数据点的时间无关。
kapacitorLoopback|stats(interval time.Duration)返回:StatsNode
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Kapacitor 和本文档提供反馈和错误报告。要获取支持,请使用以下资源: