# 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 plugins of file plugins/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
1
2
3
4
5
6

Restart the eKuiper server to activate the plugin.

# Properties

Property nameOptionalDescription
addrtrueThe addr of the InfluxDB
measurementtrueThe measurement of the InfluxDb (like table name)
usernamefalseThe InfluxDB login username
passwordfalseThe InfluxDB login password
databasenametrueThe database of the InfluxDB
tagkeytrueThe tag key of the InfluxDB
tagvaluetrueThe tag value of the InfluxDB
fieldstrueThe 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"
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# /tmp/influxPlugin.txt

{
   "file":"http://localhost:8080/influx.zip"
 }
1
2
3

# plugins/go.mod

module plugins

go 1.14

require (
        github.com/lf-edge/ekuiper v0.0.0-20200323140757-60d00241372b
        github.com/influxdata/influxdb-client-go v1.2.0
        github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3 // indirect
)

replace github.com/lf-edge/ekuiper => /root/goProject/kuiper

1
2
3
4
5
6
7
8
9
10
11
12