Open source framework for processing, monitoring, and alerting on time series data
Kapacitor has two binaries:
- kapacitor – a CLI program for calling the Kapacitor API.
- kapacitord – the Kapacitor server daemon.
You can either download the binaries directly from the downloads page or go get them:
go get github.com/influxdb/kapacitor/cmd/kapacitor
go get github.com/influxdb/kapacitor/cmd/kapacitord
An example configuration file can be found here
Kapacitor can also provide an example config for you using this command:
kapacitord config
This README gives you a high level overview of what Kapacitor is and what its like to use it. As well as some details of how it works. To get started using Kapacitor see this guide.
Kapacitor use a DSL named TICKscript to define tasks.
A simple TICKscript that alerts on high cpu usage looks like this:
stream
.from().measurement('cpu_usage_idle')
.groupBy('host')
.window()
.period(1m)
.every(1m)
.mapReduce(influxql.mean('value'))
.eval(lambda: 100.0 - "mean")
.as('used')
.alert()
.message('{{ .Level}}: {{ .Name }}/{{ index .Tags "host" }} has high cpu usage: {{ index .Fields "used" }}')
.warn(lambda: "used" > 70.0)
.crit(lambda: "used" > 85.0)
// Send alert to hander of choice.
// Slack
.slack()
.channel('#alerts')
// VictorOps
.victorOps()
.routingKey('team_rocket')
// PagerDuty
.pagerDuty()
Place the above script into a file cpu_alert.tick
then run these commands to start the task:
# Define the task (assumes cpu data is in db 'telegraf')
kapacitor define \
-name cpu_alert \
-type stream \
-dbrp telegraf.default \
-tick ./cpu_alert.tick
# Start the task
kapacitor enable cpu_alert
For more complete examples see the documentation