我将InfluxDB与Kapacitor 1.5.2一起使用,并在InfluxDB联机帮助中写了一个简单的TICKscript。我想做的就是检测测量中的波动。该代码来自InfluxDB联机帮助,并且在添加触发警报的新数据时,日志文件的输出可以完美工作。但是,已经尝试了好几个小时才将这些警报输出回InfluxDB,但是没有运气。我阅读了大部分博客文章/尝试了大多数组合/重新阅读了InfluxDB联机帮助,但无法完成这项工作。即使调用(create()),也永远不会创建“警报”度量。
// Parameters
var infoSig = 2.5
var warnSig = 3
var critSig = 3.5
var dbName = 'mydb'
var rPolicy = 'autogen'
var measurementSource = 'cpu'
var measurementAlertDest = 'alerts'
// Dataframe
var data = stream
|from()
.database(dbName)
.retentionPolicy(rPolicy)
.measurement(measurementSource)
.groupBy('dimval')
// Thresholds
var alert = data
|eval(lambda: sigma("v"))
.as('sigma')
.keep()
|alert()
.id('{{ index .Tags "dimval"}}')
.message('{{ .ID }}:{{ index .Fields "stat" }}')
.info(lambda: "sigma" > infoSig)
.warn(lambda: "sigma" > warnSig)
.crit(lambda: "sigma" > critSig)
// And back to DB as well == this doesn't have any effect at all
|influxDBOut()
.create()
.database(dbName)
.measurement(measurementAlertDest)
// When I comment the block above and uncomment the block below, I get logs in the file below
//alert
// .log('/tmp/alerts.log')
// .mode(0644)
Kapacitor日志(/ var / log / kapacitor)中的错误日志中没有任何内容,但显然influxDBOut()似乎没有任何作用,因为未创建measuremnt。我在这里想念东西吗?