Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Enterprise Open source

Template Functions

Template functions allow you to process labels and annotations to generate dynamic notifications.

NameArgument typeReturn typeDescription
humanizenumber or stringstringConverts a number to a more readable format, using metric prefixes.
humanize1024number or stringstringLike humanize, but uses 1024 as the base rather than 1000.
humanizeDurationnumber or stringstringConverts a duration in seconds to a more readable format.
humanizePercentagenumber or stringstringConverts a ratio value to a fraction of 100.
humanizeTimestampnumber or stringstringConverts a Unix timestamp in seconds to a more readable format.
titlestringstringstrings.Title, capitalises first character of each word.
toUpperstringstringstrings.ToUpper, converts all characters to upper case.
toLowerstringstringstrings.ToLower, converts all characters to lower case.
matchpattern, textbooleanregexp.MatchString Tests for a unanchored regexp match.
reReplaceAllpattern, replacement, textstringRegexp.ReplaceAllString Regexp substitution, unanchored.
graphLinkstring - JSON Object with "expr" and "datasource" fieldsstringReturns the path to graphical view in Explore for the given expression and data source.
tableLinkstring- JSON Object with "expr" and "datasource" fieldsstringReturns the path to tabular view in Explore for the given expression and data source.
args[]interface{}map[string]interface{}Converts a list of objects to a map with keys, for example, arg0, arg1. Use this function to pass multiple arguments to templates.
externalURLnothingstringReturns a string representing the external URL.
pathPrefixnothingstringReturns the path of the external URL.



Template string { humanize $value }

Input 1234567.0

Expected 1.235M


TemplateString { humanize1024 $value }

Input 1048576.0

Expected 1Mi


TemplateString { humanizeDuration $value }

Input 899.99

Expected 14m 59s


TemplateString { humanizePercentage $value }

Input 0.1234567

Expected 12.35%


TemplateString { $value | humanizeTimestamp }

Input 1435065584.128

Expected 2015-06-23 13:19:44.128 +0000 UTC


TemplateString { $value | title }

Input aa bb CC

Expected Aa Bb Cc


TemplateString { $value | toUpper }

Input aa bb CC

Expected AA BB CC


TemplateString { $value | toLower }

Input aA bB CC

Expected aa bb cc


TemplateString { match "a+" $labels.instance }

Input aa

Expected true


TemplateString {{ reReplaceAll "localhost:(.*)" "my.domain:$1" $labels.instance }}

Input localhost:3000

Expected my.domain:3000

TemplateString {{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}

Expected /explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}]

TemplateString {{ tableLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }}

Expected /explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}]


TemplateString {{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}}

Expected 1 2


TemplateString { externalURL }

Expected http://localhost/path/prefix


TemplateString { pathPrefix }

Expected /path/prefix