Kapacitor 是一个开源框架,用来处理、监控和警告时间序列数据。Kapacitor 使用 [TICKscript](https://docs.influxdata.com/kapacitor/v0.2/tick/) 脚本来定义任务,示例代码:
<pre class="brush:java;toolbar: true; auto-links: false;">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()</pre>
执行方法:
<pre class="brush:shell;toolbar: true; auto-links: false;"># 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 taskkapacitor enable cpu_alert</pre>