InfluxDB 目标(Sink)
该插件将分析结果发送到 InfluxDB 中。
编译插件&创建插件
在编译之前,请对源代码做如下更改:
- 在
go.mod文件中增加对 InfluxDB 库文件的引用 - 把文件
plugins/sinks/influxdb.go中的第一行// +build plugins删除
# cd $kuiper_src# go build -trimpath --buildmode=plugin -o plugins/sinks/InfluxDB.so plugins/sinks/influxdb/influxdb.go# zip influx.zip plugins/sinks/InfluxDB.so# cp influx.zip /root/tomcat_path/webapps/ROOT/# bin/kuiper create plugin sink influx -f /tmp/influxPlugin.txt# bin/kuiper create rule influx -f /tmp/influxRule.txt
重新启动 Kuiper 服务器以激活插件。
属性
| 属性名称 | 会否可选 | 说明 |
|---|---|---|
| addr | 是 | InfluxDB的地址 |
| measurement | 是 | InfluxDb的测量(如表名) |
| username | 否 | InfluxDB登陆用户名 |
| password | 否 | InfluxDB登陆密码 |
| databasename | 是 | InfluxDB的数据库 |
| tagkey | 是 | InfluxDB的标签键 |
| tagvalue | 是 | InfluxDB的标签值 |
| fields | 是 | InfluxDB的列名,用”,”隔开 |
示例用法
下面是选择温度大于50度的样本规则,和一些配置文件仅供参考。
####/tmp/influxRule.txt
{"id": "influx","sql": "SELECT * from demo_stream where temperature > 50","actions": [{"log": {},"influx":{"addr": "http://192.168.100.245:8086","username": "","password": "","measurement": "test","databasename": "databasename","tagkey": "tagkey","tagvalue": "tagvalue","fields": "humidity,temperature,pressure"}}]}
####/tmp/influxPlugin.txt
{"file":"http://localhost:8080/influx.zip"}
plugins/go.mod
module pluginsgo 1.14require (github.com/emqx/kuiper v0.0.0-20200323140757-60d00241372bgithub.com/influxdata/influxdb-client-go v1.2.0github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3 // indirect)replace github.com/emqx/kuiper => /root/goProject/kuiper
