Basic configurations

The configuration file for eKuiper is at $kuiper/etc/kuiper.yaml. The configuration file is yaml format. Application can be configured through environment variables. Environment variables are taking precedence over their counterparts in the yaml file. In order to use env variable for given config we must use formatting as follows: KUIPER__ prefix + config path elements connected by __. Example, in case of config:

  1. basic:
  2. # true|false, with debug level, it prints more debug info
  3. debug: false
  4. # true|false, if it's set to true, then the log will be print to console
  5. consoleLog: false
  6. # true|false, if it's set to true, then the log will be print to log file
  7. fileLog: true
  8. # How many hours to split the file
  9. rotateTime: 24
  10. # Maximum file storage hours
  11. maxAge: 72
  12. # Whether to ignore case in SQL processing. Note that, the name of customized function by plugins are case-sensitive.
  13. ignoreCase: true

for debug option in basic following env is valid KUIPER_BASIC_DEBUG=true and if used debug value will be set to true.

Configuration ignoreCase is used to ignore case in SQL processing. By default, it’s set to true to comply with standard SQL. In this case, data ingested can be case-insensitive. If the column names in the SQL, stream definition and the ingested data can be unified as a case-sensitive name, it is recommended to set to false to gain a better performance.

Log level

  1. basic:
  2. # true|false, with debug level, it prints more debug info
  3. debug: false
  4. # true|false, if it's set to true, then the log will be print to console
  5. consoleLog: false
  6. # true|false, if it's set to true, then the log will be print to log file
  7. fileLog: true
  8. # How many hours to split the file
  9. rotateTime: 24
  10. # Maximum file storage hours
  11. maxAge: 72

system log

When the user sets the value of the environment variable named KuiperSyslogKey to true, the log will be printed to the syslog.

Cli Addr

  1. basic:
  2. # CLI bind IP
  3. ip: 0.0.0.0
  4. # CLI port
  5. port: 20498

Rest Service Configuration

  1. basic:
  2. # REST service bind IP
  3. restIp: 0.0.0.0
  4. # REST service port
  5. restPort: 9081
  6. restTls:
  7. certfile: /var/https-server.crt
  8. keyfile: /var/https-server.key

restPort

The port for the rest api http server to listen to.

restTls

The tls cert file path and key file path setting. If restTls is not set, the rest api server will listen on http. Otherwise, it will listen on https.

authentication

eKuiper will check the Token for rest api when authentication option is true. please check this file for more info.

  1. basic:
  2. authentication: false

Prometheus Configuration

eKuiper can export metrics to prometheus if prometheus option is true. The prometheus will be served with the port specified by prometheusPort option.

  1. basic:
  2. prometheus: true
  3. prometheusPort: 20499

For such a default configuration, eKuiper will export metrics and serve prometheus at http://localhost:20499/metrics

Pluginhosts Configuration

The URL where hosts all of pre-build native plugins. By default, it’s at packages.emqx.net.

All plugins list as follows:

plugin types pre-build plugins
source random zmq
sink file image influx redis tdengine zmq
function accumulateWordCount countPlusOne echo geohash image labelImage

User can get all pre-build plugins names and address by below Rest-APIs:

  1. GET http://localhost:9081/plugins/sources/prebuild
  2. GET http://localhost:9081/plugins/sinks/prebuild
  3. GET http://localhost:9081/plugins/functions/prebuild

After get the plugin info, users can try these plugins, more info

Note: only the official released debian based docker images support these operations

Sink configurations

  1. #The cache persistence threshold size. If the message in sink cache is larger than 10, then it triggers persistence. If you find the remote system is slow to response, or sink throughput is small, then it's recommend to increase below 2 configurations.More memory is required with the increase of below 2 configurations.
  2. # If the message count reaches below value, then it triggers persistence.
  3. cacheThreshold: 10
  4. # The message persistence is triggered by a ticker, and cacheTriggerCount is for using configure the count to trigger the persistence procedure regardless if the message number reaches cacheThreshold or not. This is to prevent the data won't be saved as the cache never pass the threshold.
  5. cacheTriggerCount: 15
  6. # Control to disable cache or not. If it's set to true, then the cache will be disabled, otherwise, it will be enabled.
  7. disableCache: false

Store configurations

There is possibility to configure storage of state for application. Default storage layer is sqlite database. There is option to set redis as storage. In order to use redis as store type property must be changed into redis value.

Sqlite

It has properties

  • name - name of database file - if left empty it will be sqliteKV.db

Redis

It has properties

  • host - host of redis
  • port - port of redis
  • password - password used for auth in redis, if left empty auth won’t be used
  • timeout - timeout fo connection
  • connectionSelector - reuse the connection info defined in etc/connections/connection.yaml, mainly used for edgeX redis in secure mode
    • only applicable to redis connection information
    • the server, port and password in connection info will overwrite the host port and password above
    • more info

Config

  1. store:
  2. #Type of store that will be used for keeping state of the application
  3. type: sqlite
  4. redis:
  5. host: localhost
  6. port: 6379
  7. password: kuiper
  8. #Timeout in ms
  9. timeout: 1000
  10. sqlite:
  11. #Sqlite file name, if left empty name of db will be sqliteKV.db
  12. name:

Portable plugin configurations

This section configures the portable plugin runtime.

  1. portable:
  2. # The executable of python. Specify this if you have multiple python instances in your system
  3. # or other circumstance where the python executable cannot be successfully invoked through the default command.
  4. pythonBin: python