写入完全相同的数据时,警报可以与日志文件一起使用,但不能与InfluxDBOut一起使用

时间:2019-05-30 14:27:00

标签: influxdb kapacitor

我将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。我在这里想念东西吗?

0 个答案:

没有答案