我正试图让kapacitor根据进水数据库中的收集数据触发警报。我的勾选文件是基于使用kapacitor与进水数据库和使用中的答案。
stream
// Select just the cpu measurement from our example database.
|from()
.measurement('cpu_value')
.where(lambda: "type" == 'percent' AND "type_instance" == 'idle')
|alert()
.crit(lambda: "value" < 98)
// Whenever we get an alert write it to a file.
.log('/tmp/alerts.log')我已经将警报定义为每个kapacitor文档:
kapacitor define cpu_alert -type stream -tick cpu_alert.tick -dbrp collectd.default正在将适当的数据从collectd发送到进水数据库,并通过查询获得:
select value from /cpu_value/ where type='percent' and type_instance = 'idle' order by time desc limit 10;
然而,运行:
kapacitor record stream -task cpu_alert -duration 20s &不记录任何数据:
$ kapacitor list recordings
ID Type Status Size Date
48e5c04a-68c2-44a3-ba80-f2c12d952994 stream running 0 B 19 Jul 16 11:57 IST 我怀疑在注册任务时可能没有正确引用数据库,但无法看到哪里有错误。
发布于 2016-07-26 08:20:05
根本原因是配置不正确。注意kapacitor.conf文件的“kapacitor.conf”和“进水-订阅”部分。
默认情况下,kapacitor订阅所有流入的DB。我希望它只订阅一个DB,但错误地将其包含在“进水数据库-订阅”部分,而不是"influxdb.subscriptions“部分。
通过向influxdb发出“显示订阅”查询,可以查看哪些订阅处于活动状态。
https://serverfault.com/questions/790650
复制相似问题