InfluxDB Sink
The sink will publish the result into a InfluxDB.
Compile & deploy plugin
Please make following update before compile the plugin,
- Add Influxdb library reference in
go.mod. - Remove the first line
// +build pluginsof fileplugins/sinks/influx.go.
# cd $eKuiper_src# go build -trimpath -modfile extensions.mod --buildmode=plugin -o plugins/sinks/Influx.so extensions/sinks/influx/influx.go# zip influx.zip plugins/sinks/Influx.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
Restart the eKuiper server to activate the plugin.
Properties
| Property name | Optional | Description |
|---|---|---|
| addr | true | The addr of the InfluxDB |
| measurement | true | The measurement of the InfluxDb (like table name) |
| username | false | The InfluxDB login username |
| password | false | The InfluxDB login password |
| databasename | true | The database of the InfluxDB |
| tagkey | true | The tag key of the InfluxDB |
| tagvalue | true | The tag value of the InfluxDB |
| fields | true | The column of the InfluxDB,split with “,” |
Sample usage
Below is a sample for selecting temperature great than 50 degree, and some profiles only for your reference.
/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/lf-edge/ekuiper 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/lf-edge/ekuiper => /root/goProject/kuiper