Template examples
Alert field templates will be executed during every rule iteration for eachalert that fires, so keep any queries and templates lightweight. If you have aneed for more complicated templates for alerts, it is recommended to link to aconsole instead.
Simple iteration
This displays a list of instances, and whether they are up:
{{ .Labels.instance }} {{ .Value }}
{{ end }}
Go and Go's templating language are both strongly typed, so one must check thatsamples were returned to avoid an execution error. For example this couldhappen if a scrape or rule evaluation has not run yet, or a host was down.
The included prom_query_drilldown
template handles this, allows forformatting of results, and linking to the .
Using console URL parameters
{{ with printf "node_memory_MemTotal{job='node',instance='%s'}" .Params.instance | query }}
{{ . | first | value | humanize1024 }}B
Here we iterate over all network devices and display the network traffic for each.
As the range
action does not specify a variable, .Params.instance
is notavailable inside the loop as .
is now the loop variable.
Defining reusable templates
{{define "myTemplate"}}
do something
{{end}}
{{template "myTemplate"}}
Templates are limited to one argument. The function can be used to wrap multiple arguments.