Template examples

    Alert field templates will be executed during every rule iteration for each alert that fires, so keep any queries and templates lightweight. If you have a need for more complicated templates for alerts, it is recommended to link to a console instead.

    Simple iteration

    This displays a list of instances, and whether they are up:

    1. {{ .Labels.instance }} {{ .Value }}
    2. {{ end }}

    Go and Go’s templating language are both strongly typed, so one must check that samples were returned to avoid an execution error. For example this could happen if a scrape or rule evaluation has not run yet, or a host was down.

    The included prom_query_drilldown template handles this, allows for formatting of results, and linking to the .

    Using console URL parameters

    1. {{ with printf "node_memory_MemTotal{job='node',instance='%s'}" .Params.instance | query }}
    2. {{ . | 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 not available inside the loop as . is now the loop variable.

    Defining reusable templates

    1. {{define "myTemplate"}}
    2. do something
    3. {{end}}
    4. {{template "myTemplate"}}

    Templates are limited to one argument. The function can be used to wrap multiple arguments.