influxdata / chronograf

Open source monitoring and visualization UI for the TICK stack
https://www.influxdata.com/time-series-platform/chronograf/
Other
1.5k stars 258 forks source link

tickscript errors on parser:unexpected #6061

Open harikrishna1083 opened 11 months ago

harikrishna1083 commented 11 months ago

The generatd tickscript is erroring out when trying to save the alert rule, though TICK syntax is valid.

The error is like:
parser: unexpected ) line 7 char 67 AND ("ho".expected:"number","string","duration","identifier","TRUE","FALSE"(","-"",!

The generated tick script is like:

var critIO = 70

var highIO = 50

var crit = critIO + 1

var critReset = highIO + 4

var db = 'telegraf'

var rp = 'autogen'

var measurement = 'cpu'

var groupBy = ['host']

var whereFilter = lambda: (isPresent("cpu") AND "cpu" == 'cpu-total') AND ("host" == hostDevice)

var period = 30s

var every = 30s

var idVar = name

var message = 'High IOWait detected on {{ index .Tags "host" }}. Current value: {{ index .Fields "usage_iowait" }}'

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 data = stream |from() .database(db) .retentionPolicy(rp) .measurement(measurement) .groupBy(groupBy) .where(whereFilter) |window() .period(period) .every(every) .align() |max('usage_iowait') .as('value')

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

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')