influxdata / kapacitor

Open source framework for processing, monitoring, and alerting on time series data
MIT License
2.31k stars 493 forks source link

Kapacitor Alert #2480

Open Chr-Sergey opened 3 years ago

Chr-Sergey commented 3 years ago

Test message Alert from kapacitor to slack, alerta and more is good working. But with trigger not working.

Influx 2.0.3 Kapacitor OSS 1.5.8

This my tickscripts.

 var db = 'hosts'

var rp = 'autogen'

var measurement = 'system'

var groupBy = []

var whereFilter = lambda: ("host" == 'test-backup') AND isPresent("load1")

var name = 'test08'

var idVar = name

var message = ' TEST08 {{.Name}} {{.ID}}  {{ index .Fields "value" }} {{.Fields}} {{.Level}}'

var idTag = 'alertID'

var levelTag = 'level'

var messageField = 'message'

var durationField = 'duration'

var outputDB = 'chronograf'

var outputRP = 'autogen'

var outputMeasurement = 'alerts'

**var triggerType = 'threshold'**

var crit = 1

var data = stream
    |from()
        .database(db)
        .retentionPolicy(rp)
        .measurement(measurement)
        .groupBy(groupBy)
        .where(whereFilter)
    |eval(lambda: "load1")
        .as('value')

var trigger = data
    |alert()
        .crit(lambda: "value" > crit)
        .message(message)
        .id(idVar)
        .idTag(idTag)
        .levelTag(levelTag)
        .messageField(messageField)
        .durationField(durationField)
        .stateChangesOnly()
        .slack()
        .channel('#zabbix')

trigger
    |eval(lambda: float("value"))
        .as('value')
        .keep()
    |influxDBOut()
        .create()
        .database(outputDB)
        .retentionPolicy(outputRP)
        .measurement(outputMeasurement)
        .tag('alertName', name)
        .tag('triggerType', triggerType)

trigger
    |httpOut('output')

If I get var triggerType = 'deadmen', alerts is working.

Restart kapacitor have error: ts=2021-02-12T13:21:49.285+03:00 lvl=error msg="failed to create database" service=kapacitor task_master=main task=test08 node=influxdb_out5 err="not implemented: CREATE DATABASE" database=chronograf cluster=

timhallinflux commented 3 years ago

you will need to create a chronograf bucket in InfluxDB 2.0. you will also need to create a DBRP mapping for chronograf/autogen to allow for the InfluxQL to write to that location. See: https://docs.influxdata.com/influxdb/v2.0/tools/kapacitor/#write-back-to-influxdb