Use Kapacitor with InfluxDB OSS
Kapacitor is a data processing framework that makes it easy to create alerts, run ETL jobs and detect anomalies. Kapacitor interacts with InfluxDB Cloud and InfluxDB OSS 2.7 using the InfluxDB 1.x compatibility API, so you can continue using Kapacitor without having to migrate libraries of TICKscripts to InfluxDB tasks.
Support for stream tasks
InfluxDB Cloud and InfluxDB OSS 2.7 do not have subscription APIs and do not support Kapacitor stream tasks, but you can continue to use stream tasks by writing data directly to Kapacitor. For more information, see below.
On this page
- Configure Kapacitor to connect to InfluxDB
- Use Kapacitor batch tasks
- Use Kapacitor stream tasks
- Write back to InfluxDB
Configure Kapacitor to connect to InfluxDB
To connect Kapacitor to InfluxDB Cloud or InfluxDB OSS 2.7, update the [[influxdb]]
section(s) of your Kapacitor configuration file:
- Specify your InfluxDB URL
- Provide InfluxDB authentication credentials
- Disable InfluxDB subscriptions
Specify your InfluxDB URL
Provide your InfluxDB URL in the [[influxdb]].urls
configuration option.
For more information, see InfluxDB Cloud regions
or InfluxDB OSS URLs.
[[influxdb]]
# ...
urls = ["http://localhost:8086"]
Provide InfluxDB authentication credentials
InfluxDB Cloud and InfluxDB OSS 2.7 require authentication.
Provide the following credentials in your [[influxdb]].username
and [[influxdb]].password
configuration options:
- username: InfluxDB username
- password: InfluxDB API token
[[influxdb]]
# ...
username = "influxdb-username"
password = "influxdb-token"
Kapacitor is subject to InfluxDB token permission restrictions. To query or write to an InfluxDB bucket, the InfluxDB token must have read and/or write permissions for the target bucket. For information about token permissions, see Create a token.
Disable InfluxDB subscriptions
InfluxDB Cloud and InfluxDB OSS 2.7 do not have subscriptions APIs.
Set the [[influxdb]].disable-subscriptions
to true
to disable InfluxDB subscriptions.
[[influxdb]]
# ...
disable-subscriptions = true
Use Kapacitor batch tasks
Kapacitor batch tasks use the query
endpoint of the 1.x compatibility API
and require no change to use with InfluxDB Cloud and InfluxDB OSS.
For information about writing back to InfluxDB in Kapacitor tasks,
see Write back to InfluxDB below.
Use Kapacitor stream tasks
InfluxDB Cloud and OSS 2.7 do not have subscription APIs and do not support Kapacitor stream tasks directly.
To use Kapacitor stream tasks, write data directly to Kapacitor using the Kapacitor write
API. We recommend using the Telegraf InfluxDB output plugin to write data to both InfluxDB Cloud or OSS and Kapacitor.
Write data using the Telegraf InfluxDB output plugin
To write data to both InfluxDB and Kapacitor using the InfluxDB output plugin, complete the following steps:
- Install Telegraf.
- Create a DBRP mapping.
- In the Telegraf InfluxDB output plugin configuration file, specify the following options, replacing
database
,retention_policy
,username
andpassword
to match your DBRP mapping, and setskip_database_creation
totrue
:
# Write to Kapacitor
[[outputs.influxdb]]
urls = ["http://localhost:9092"]
database = "example-db"
retention_policy = "example-rp"
# Write to InfluxDB Cloud or OSS
[[outputs.influxdb]]
urls = ["http://localhost:8086"]
database = "example-db"
retention_policy = "example-rp"
username = "influxdb-username"
password = "influxdb-token"
skip_database_creation = true
Write back to InfluxDB
If using the Kapacitor InfluxDBOut
node to write data to InfluxDB 2.7,
InfluxDB maps the specified database and retention policy to a corresponding bucket.
You can also manually map database/retention policy combinations (DBRPs) to buckets.
For more information, see DBRP mapping.
The following example TICKscript writes to the my-db/my-rp
bucket in
InfluxDB Cloud or InfluxDB OSS 2.7.
batch
|query('SELECT errors / total AS error_percent from requests')
// Write the transformed data to InfluxDB
|influxDBOut()
.database('my-db')
.retentionPolicy('my-rp')
.measurement('errors')
.tag('kapacitor', 'true')
.tag('version', '0.2')
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.