var DefaultFuncs = FuncMap{ "toUpper": strings.ToUpper, "toLower": strings.ToLower, "title": cases.Title(language.AmericanEnglish).String, "join": func(sep string, s []string) string { return strings.Join(s, sep) }, "match": regexp.MatchString, "safeHtml": func(text string) tmplhtml.HTML { return tmplhtml.HTML(text) }, "reReplaceAll": func(pattern, repl, text string) string { re := regexp.MustCompile(pattern) return re.ReplaceAllString(text, repl) }, "stringSlice": func(s ...string) []string { return s }, }
Alert holds one alert for notification templates.
type Alert struct { Status string `json:"status"` Labels KV `json:"labels"` Annotations KV `json:"annotations"` StartsAt time.Time `json:"startsAt"` EndsAt time.Time `json:"endsAt"` GeneratorURL string `json:"generatorURL"` Fingerprint string `json:"fingerprint"` }
Alerts is a list of Alert objects.
type Alerts []Alert
func (as Alerts) Firing() []Alert
Firing returns the subset of alerts that are firing.
func (as Alerts) Resolved() []Alert
Resolved returns the subset of alerts that are resolved.
Data is the data passed to notification templates and webhook pushes.
End-users should not be exposed to Go's type system, as this will confuse them and prevent simple things like simple equality checks to fail. Map everything to float64/string.
type Data struct { Receiver string `json:"receiver"` Status string `json:"status"` Alerts Alerts `json:"alerts"` GroupLabels KV `json:"groupLabels"` CommonLabels KV `json:"commonLabels"` CommonAnnotations KV `json:"commonAnnotations"` ExternalURL string `json:"externalURL"` }
type FuncMap map[string]interface{}
KV is a set of key/value string pairs.
type KV map[string]string
func (kv KV) Names() []string
Names returns the names of the label names in the LabelSet.
func (kv KV) Remove(keys []string) KV
Remove returns a copy of the key/value set without the given keys.
func (kv KV) SortedPairs() Pairs
SortedPairs returns a sorted list of key/value pairs.
func (kv KV) Values() []string
Values returns a list of the values in the LabelSet.
Pair is a key/value string pair.
type Pair struct { Name, Value string }
Pairs is a list of key/value string pairs.
type Pairs []Pair
func (ps Pairs) Names() []string
Names returns a list of names of the pairs.
func (ps Pairs) Values() []string
Values returns a list of values of the pairs.
Template bundles a text and a html template instance.
type Template struct { ExternalURL *url.URL // contains filtered or unexported fields }
func FromGlobs(paths ...string) (*Template, error)
FromGlobs calls ParseGlob on all path globs provided and returns the resulting Template.
func (t *Template) Data(recv string, groupLabels model.LabelSet, alerts ...*types.Alert) *Data
Data assembles data for template expansion.
func (t *Template) ExecuteHTMLString(html string, data interface{}) (string, error)
ExecuteHTMLString needs a meaningful doc comment (TODO(fabxc)).
func (t *Template) ExecuteTextString(text string, data interface{}) (string, error)
ExecuteTextString needs a meaningful doc comment (TODO(fabxc)).