You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
通知消息模板
创建通知消息模板
复制全文
下载 pdf
创建通知消息模板
托管 Prometheus 支持自定义消息通知模板,您可以在通知消息模版中定义告警通知的结构和字段信息。本文介绍如何创建消息通知模板。
说明
新版告警中心已经发布上线,针对通知策略、通知模板、聚合策略、屏蔽策略等功能进行全面升级优化,推荐使用全新「通知模版」配置通知模板。
背景信息
当告警规则匹配的事件被触发后,托管 Prometheus 会通过邮件、飞书、钉钉、电话、Webhook 等方式发送告警通知。系统已为各种通知方式预置了消息模板,但如果预置的通知消息模板不能满足需求,您可以自定义通知消息模板。
通知消息模板使用 Markdown 语法Go Template 语法 来撰写和渲染消息通知。配置自定义消息模板前,您需要首先了解 Go Template 中的常用语法。
说明
本文中提及的托管 Prometheus 告警事件变量参数和返回示例,请参见 变量结构和参数
使用限制
一个主账号及其子账号最多可创建 100 个通知消息模板。
Go Template 常用语法
.字符
.字符用于在当前作用域下,渲染指定的对象。
示例 1:取顶级作用域下的所有内容,即告警信息中的全部内容。
{{ . }}
预期返回结果:输出告警信息的全部内容。
示例 2:获取告警信息中的Region字段。
{{ .Region }}
预期返回结果如下:
cn-beijing
变量
变量用于保存传入的数据,数据传入变量后,整个模板都能通过变量访问该数据。例如,在{ {$alert := .Alerts}}中使用$alert作为变量,保存告警信息中的全部内容,然后可以使用{{$alert}}访问变量。
示例:将告警规则名称保存在$alertrulename,然后输出$alertrulename
{{ $alertrulename := .AlertingRuleName }} {{$alertrulename}}
预期返回结果:
CPU 利用率大于 80%
判断语句
判断语句if/else使用if检查数据,如果不满足条件,则执行else的内容。当if语句的判断条件为 空值0nil空字符串长度为 0 的字符串 时,都返回false
示例:如果告警信息中的.Level值为P0,则输出P0 告警
{{if eq "P0" .Level }} P0 告警 {{ end }}
预期返回结果:
P0 告警
比较函数
比较函数用于比较 2 个数据的大小,常与判断语句if/else搭配使用,用于对语句执行情况进行判断。常用的比较函数如下表所示。
函数名
说明
eq
等于
ne
不等于
lt
小于
le
小于等于
gt
大于
ge
大于等于
示例:如果.Level值等于P0,则输出P0 告警
{{if eq "P0" .Level }} P0 告警 {{ end }}
预期返回结果:
P0 告警
逻辑函数
逻辑函数主要包括andornot,用于在多个条件中取 逻辑。
示例:如果Region的值为cn-beijing,并且Level的值为P0,则输出北京 P0 告警
{{if eq "cn-beijing" .Region and eq "P0" .Level }} 北京 PO 告警 {{ end }}
返回结果:
北京 PO 告警
常用内置函数
Go Template 中的常用内置函数,如下表所示。
函数名称
说明
示例
len
获取数组长度
获取 Alerts 数组长度。
{{ len .Alerts }}
预期结果如下:
9
使用限制
  • 不支持配置消息通知中的标题背景颜色,由系统自动设定(告警中为红色,解除为绿色)。
  • 不支持配置消息通知中的按钮,固定为 查看详情,用于跳转到告警事件列表。
  • 消息通知的标题和内容长度限制为 16k 字节数(utf-8 编码),超过此限制将导致告警信息被截断。
操作步骤
  1. 登录 VMP 服务控制台
  1. 在顶部导航栏,选择目标地域。
  1. 单击左侧导航栏的 告警中心 > 通知消息模板,单击 创建消息模板
  • Image
  1. 选择 告警通知告警恢复通知 页签,分别配置消息模板的参数。
  • 配置项
    说明
    模版类型
    选择消息通知模板的类型,支持 邮件飞书机器人飞书应用机器人钉钉机器人、企业微信机器人 短信
    模板名称
    配置消息通知模板的名称。同一地域内不允许重名。
    模板配置
    根据 Markdown 语法和 Go Template 语法,配置 告警通知告警恢复通知 的通知模板。包括消息的标题和内容。
    • 标题:配置告警通知的标题,支持任意 utf-8 字符。
    • 内容:配置告警通知的内容,支持任意 utf-8 字符。
    说明
  1. (可选)单击 重置,恢复模板内容到默认。
  1. 单击 确认,完成配置。
后续操作
自定义飞书消息通知模板创建完成后,您可以在告警通知策略中引用该模板,详情请参见 创建告警通知策略
模板示例说明
在消息通知模版的控制台中,为您预置了飞书消息通知的模板示例,该模板由 标题内容 组成。本小节以预置 告警通知 模板为例,介绍模板示例的参数和含义。
标题说明
模板示例的标题如下:
{{ .Region }} 正在发生告警
模板示例的标题中,使用Region字段获取了发生告警的地域信息,并填充到告警标题中。
内容说明
模板示例的内容,由 告警概述故障资源详情 组成。
  • 告警概述:由以下代码实现,展示了告警规则(包含链接)、告警级别、告警条件和持续时间。
  • **🔴告警规则**: [{{ .AlertingRuleName }}]({{ .AlertingRuleDetailURL }})
    **🚨告警级别**: {{ .Level }}
    **🚦告警条件**: {{ .PromQL }} {{ .Comparator }} {{ .Threshold }} [ 持续 {{ .For }} ]
说明
在 Markdown 语法中:
  • 在语句前后分别添加**,表示该语句使用加粗格式。
  • []()表示链接,其中[]中填写链接的名称,()中填写链接的 URL 地址。
  • 故障资源详情:由以下代码实现,分别展示了每个故障资源的告警详情。
  • {{- $alertCount := len .Alerts }}
    {{- $maxAlerts := 10 }}
    **Fault Resource Details ({{ $alertCount }} 个)**:
    {{- range $idx, $alert := .Alerts }}
    {{- if lt $idx 10 }}
    {{- $labels := "" -}}
    {{- range $k, $v := $alert.Labels }}
    {{- $labels = print $labels $k "=" "\"**" $v "**\"" " " -}}
    {{- end }}
    [{{ $alert.Id }}]({{ $alert.DetailURL }}){{ "{" }} {{ $labels }}{{ "}" }}
    Current Value: {{ $alert.Value }}
    Start Time: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
    {{- end }}
    {{- end }}
    ---
    {{- if gt $alertCount $maxAlerts }}
    **The number of resources exceeds {{ $maxAlerts }} ,Jump to console for full alerts**
    {{- end }}
  • 模板内容
    说明
    {{- $alertCount := len .Alerts }}
    {{- $maxAlerts := 10 }}
    分别定义了$alertCount$maxAlerts变量:
    • $alertCount:使用len函数,获取告警信息中的故障资源数量。
    • $maxAlerts:定义了最大展示的资源数量,默认为 10,即最多展示 10 个故障资源的详情。
    **Fault Resource Details ({{ $alertCount }} 个)**:
    {{- range $idx, $alert := .Alerts }}
    {{- if lt $idx 10 }}
    {{- $labels := "" -}}
    {{- range $k, $v := $alert.Labels }}
    {{- $labels = print $labels $k "=" "\"**" $v "**\"" " " -}}
    {{- end }}
    [{{ $alert.Id }}]({{ $alert.DetailURL }}){{ "{" }} {{ $labels }}{{ "}" }}
    Current Value: {{ $alert.Value }}
    Start Time: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}
    {{- end }}
    {{- end }}
    当故障资源数小于$maxAlerts定义的值(默认为 10)时,使用递归的方式展示所有故障资源的详情。
    说明
    故障资源详情由.Alerts.Labels字段获取。参数含义和数据结构请参见 变量结构和参数,不同资源的 Labels 可能不同。
    {{- if gt $alertCount $maxAlerts }}
    **The number of resources exceeds {{ $maxAlerts }} ,Jump to console for full alerts**
    {{- end }}
    当故障资源数大于$maxAlerts定义的值(默认为 10)时,不展示具体的资源信息,提示跳转至控制台查看。
消息示例
使用自定义模板时,实际生效效果如下图所示。
Image
最近更新时间:2026.09.04 14:32:33
这个页面对您有帮助吗?
有用
有用
无用
无用