Discussion:
[influxdb] Kapacitor: Variables in html template of .details() property method
Sagar Mehta
2018-04-02 22:12:12 UTC
Permalink
Hello,

I want to send alert email that indicates what environment I am in. I would
like to use variable in html template.

From the description of details node I found I can access variable using
Tags or Fields. Now I set the variable in tags using default() .
tag(<string>,<string>) variable. I am able to access the variable in alert
Node but not in the deadman node. Can anyone help me with that?

Below is my working tickscript


dbrp "telegraf"."autogen"


var info=70

var warn =80

var crit =10

var period =20s

var every =20s

var landscape= 'Sandbox'


var data=stream

|from()

.measurement('cpu')

.groupBy('host')

.where(lambda: "cpu" == 'cpu-total' AND isPresent("usage_idle") )


data

|eval(lambda:100.0 - "usage_idle")

.as('used')

|window()

.period(period)

.every(every)

|mean('used')

.as('stat')

|default()

.tag('landscapeTag',landscape)

|log()

|alert()

.warn(lambda: "stat" > warn)

.crit(lambda: "stat" > crit)

.id('{{ index .Tags "host" }}')

.message('Landscape - {{index .Tags "landscapeTag"}} :: HOST -
{{.ID}} :: CPU USAGE is at {{.Level}} level.')

.details('''

<h2>CPU USAGE ALERT </h2>

<div>HOST - {{.ID}} </br>

Landscape - {{index .Tags "landscapeTag"}} </br>

CPU USAGE is <b> {{ index .Fields "stat"}} </b> which is at <b>
{{.Level}} </b> level.</div>

''')

.stateChangesOnly(5m)

// Send alerts to the `cpu` topic

.topic('cpu')

----------Output: alert in email --------

CPU USAGE ALERT
HOST - ip-172-31-87-132
Landscape - Sandbox
CPU USAGE is *0.7000000006519258 *which is at *OK *level.


Below is not working tickscript:

dbrp "telegraf"."autogen"


var threshold = 1.0

var interval =30s

var landscape= 'Sandbox'


var data=stream

|from()

.measurement('cpu')

.groupBy('host')

.where(lambda: "cpu" == 'cpu-total' AND isPresent("usage_idle") )

data

|default()

.tag('xyz',landscape)

|log()

var log = data

|deadman(threshold,interval)

.id('{{ index .Tags "host" }}')

.message('Landscape - {{ index .Tags "xyz" }} :: Host - {{ .ID }}
:: Telegraf Agent is {{ if eq .Level "OK" }}ONLINE {{ else }}OFFLINE{{ end
}} ')

.details('''

<h2>TELEGRAF AGENT STATUS ALERT </h2>

Landscape - {{ index .Tags "xyz" }}

</br>Telegraf Agent on HOST: <b> {{.ID}} </b>

</br> <b>

{{ if eq .Level "OK" }} Info: Telegraf available {{ else }} Error:
Telegraf disabled or defective. {{ end }} </b>

</div>

''')

.topic('cpu')

.log('/var/log/kapacitor/alerts.log')

// .stateChangesOnly(2m)


------------Output : alert in email--------

TELEGRAF AGENT STATUS ALERT Landscape -
Telegraf Agent on HOST: *ip-172-31-87-132 *
*Error: Telegraf disabled or defective.*


Kindly let me know if you need more clarification. Thank You!

Regards,
Sagar Mehta
--
Remember to include the version number!
---
You received this message because you are subscribed to the Google Groups "InfluxData" group.
To unsubscribe from this group and stop receiving emails from it, send an email to influxdb+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/influxdb.
To view this discussion on the web visit https://groups.google.com/d/msgid/influxdb/CACf-h4RBzzg0Geh4hPwfH-xVEyMukcMtU4--57gKS0NFuOHn0A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Loading...