通知模版参考
Prometheus 生成并发送告警到 Alertmanager,然后根据接收器的标签将其发送给不同的接收者。接收器可以是多种集成之一,包括但不限于:Slack、PagerDuty、电子邮件或通过通用 Webhook 接口的自定义集成。
发送给接收器的通知由模板构建而成。Alertmanager 配备了默认模板,但也可以进行自定义。为了避免混淆,必须注意的是 Alertmanager 模板与 Prometheus 中的模板有所不同。Prometheus 的模板也包括告警规则标签/注解中的模板。
Alertmanager 的通知模板基于 Go 的模板系统。请注意,一些字段会被转化为文本,而其他字段则被转化为 HTML,这可能会影响转义。
数据结构
数据
数据是传递给通知模板和 webhook 推送的结构。
名称 | 类型 | 注解 |
---|---|---|
Receiver | string | 定义通知的目标接收器的名称(如 slack, email 等)。 |
Status | string | 如果至少有一个告警正在触发,则定义为 firing ,否则为resolved 。 |
Alerts | Alert | 该组中所有告警对象的列表(见下文)。 |
GroupLabels | KV | 这些告警被分组时的标签。 |
CommonLabels | KV | 所有告警共有的标签。 |
CommonAnnotations | KV | 所有告警的共同注解集。用于提供关于告警的附加信息。 |
ExternalURL | string | 发出通知的的 Alertmanager 的回链(backlink)。 |
Alerts
类型提供了过滤告警的功能:
Alerts.Firing
返回当前正在触发的告警对象列表。Alerts.Resolved
返回该组中已解决的告警对象列表。
告警
Alert
生成一个告警通知模板。
名称 | 类型 | 备注 |
---|---|---|
Status | string | 定义告警是否已解决或当前正在触发。 |
Labels | KV | 附带一组标签到告警。 |
Annotations | KV | 告警的一组注解。 |
StartsAt | time.Time | 告警开始触发的时间。如果省略,则由 Alertmanager 分配当前时间。 |
EndsAt | time.Time | 只在知道告警结束时间时设置。否则设置为从收到最后一次告警的时间加上一个超时时间。 |
GeneratorURL | string | 回链,标识此告警的触发实体。 |
Fingerprint | string | 可用于识别告警的指纹。 |
KV
KV 是一组键/值对,用于表示标签和注解。
包含两个注解的注解示例:
除了直接访问存储为 KV 的数据(标签和注解)之外,还有对 LabelSet 进行排序、删除和查看的方法:
Name | Arguments | Returns | Notes |
---|---|---|---|
SortedPairs | - | Pairs(键/值字符串对的列表。) | 返回键/值对的排序列表 |
Remove | []string | KV | 返回不带给定键的键/值映射的副本 |
Names | - | []string | 返回 LabelSet 中标签名称的名称 |
Values | - | []string | 返回 LabelSet 中的值的列表。 |
函数
请注意 Go 模板也提供了默认函数。
String
Name | Arguments | Returns | Notes |
---|---|---|---|
title | string | strings.Title | 将每个单词的首字符大写。 |
toUpper | string | strings.ToUpper | 将所有字符转换为大写。 |
toLower | string | strings.ToLower | 将所有字符转换为小写。 |
trimSpace | string | Regexp.MatchString | 使用正则表达式匹配字符串。 |
match | pattern, string | Regexp.MatchString | 使用正则表达式匹配字符串。 |
reReplaceAll | pattern, replacement, text | Regexp.ReplaceAllString | 正则表达式替换。 |
join | sep string, s []string | strings.Join | 将 s 的元素连接成一个字符串。连接时在元素之间插入分隔符。 |
safeHtml | text string | html/template.HTML | 标记字符串为 HTML,不需要自动转义。 |
stringSlice | …string | …string | 返回传递的字符串的切片。 |
该文档基于 Prometheus 官方文档翻译而成。