Basic configurations

The configuration file for eKuiper is at $kuiper/etc/kuiper.yaml. The configuration file is yaml format.

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.

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 plugins. By default it’s at packages.emqx.io. There could be several hosts (host can be separated with comma), if same package could be found in the several hosts, then the package in the 1st host will have the highest priority.

Please notice that only the plugins that can be installed to the current eKuiper instance will be listed through 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

It has following conditions to make the plugins listed through previous APIs,

  • eKuiper version: The plugins must be built for the eKuiper instance version. If the plugins cannot be found for a specific version, no plugins will be returned.
  • Operating system: Now only Linux system is supported, so if eKuiper is running at other operating systems, no plugins will be returned.
  • CPU architecture: Only with correct CPU architecture built plugins are found in the plugin repository can the plugins be returned.
  • EMQ official released Docker images: Only when the eKuiper is running at EMQ official released Docker images can the plugins be returned.
  1. pluginHosts: https://packages.emqx.io

It could be also as following, you can specify a local repository, and the plugin in that repository will have higher priorities.

  1. pluginHosts: https://local.repo.net, https://packages.emqx.io

The directory structure of the plugins should be similar as following.

  1. http://host:port/kuiper-plugins/0.9.1/alpine/sinks
  2. http://host:port/kuiper-plugins/0.9.1/alpine/sources
  3. http://host:port/kuiper-plugins/0.9.1/alpine/functions

The content of the page should be similar as below.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  2. <html>
  3. <title>Directory listing for enterprise: /4.1.1/</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta name="robots" content="noindex,nofollow">
  6. <body>
  7. <h2>Directory listing for enterprise: /4.1.1/</h2>
  8. <hr>
  9. <ul>
  10. <li><a href="file_386.zip">file_386.zip</a>
  11. <li><a href="file_amd64.zip">file_amd64.zip</a>
  12. <li><a href="file_arm.zip">file_arm.zip</a>
  13. <li><a href="file_arm64.zip">file_arm64.zip</a>
  14. <li><a href="file_ppc64le.zip">file_ppc64le.zip</a>
  15. <li><a href="influx_386.zip">influx_386.zip</a>
  16. <li><a href="influx_amd64.zip">influx_amd64.zip</a>
  17. <li><a href="influx_arm.zip">influx_arm.zip</a>
  18. <li><a href="influx_arm64.zip">influx_arm64.zip</a>
  19. <li><a href="influx_ppc64le.zip">influx_ppc64le.zip</a>
  20. </ul>
  21. <hr>
  22. </body>
  23. </html>

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