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

托管 Prometheus

复制全文
下载 pdf
通知消息模板
扩展函数与变量
复制全文
下载 pdf
扩展函数与变量
通知消息模板中允许使用预置的告警变量,本文为您介绍预置的告警变量的结构和参数的含义。​
数据结构​
本文通过以下 JSON 示例代码,展示了托管 Prometheus 告警信息所包含的变量、参数和数据结构。方便您理解 Go Template 的常用语法和使用方式。​
​
{​
"Region": "cn-beijing",​
"AlertingRuleName": "CPU 利用率大于 80%",​
"AlertingRuleDescription": "alarm description",​
"AlertingRuleDetailURL": "https://console.volcanicengine.com/prometheus/***3503d49e/detail",​
"Level": "P0",​
"PromQL": "rate(cpu_total[1m])",​
"Comparator": ">",​
"Threshold": "0.8",​
"For": "3m",​
"Alerts": [​
{​
"Id": "cdwaihonj434390ad",​
"Labels": {​
"cluster": "ccmp26s0bjh01jhk860f0",​
"namespace": "default",​
"service": "nginx",​
"pod": "nginx-85996***"​
},​
"Value": "0.84",​
"StartsAt": "2024-02-02 17:13:32.065 +0800 CST",​
"EndsAt": "2024-02-02 17:13:32.065 +0800 CST",​
"DetailURL": "https://console.volcanicengine.com/prometheus/***/alert/alerting?detail_id=***"​
}​
]​
}​
​
参数说明​
消息模板中,可以使用的预置变量参数和说明,如下表所示。​
​
变量​
类型​
示例值​
说明​
Region​
String​
cn-beijing​
告警产生的地域。取值:​
  • cn-beijing:华北 2(北京)​
  • cn-shanghai:华东 2(上海)​
  • cn-guangzhou:华南 1(广州)​
说明​
更多地域信息,请参见 地域和可用区。​
AlertingRuleName​
String​
CPU 利用率大于 80%​
告警规则的名称。​
AlertingRuleDescription​
String​
alarm description​
告警规则的描述信息。​
AlertingRuleDetailURL​
String​
https://console.volcanicengine.com/prometheus/***3503d49e/detail​
告警规则的 URL 链接。使用该链接可以直接跳转到对应的告警规则。​
Level​
String​
P0​
告警等级。取值为 P0、P1 和 P2。​
PromQL​
String​
rate(cpu_total[1m])​
告警规则中用于触发告警的 PromQL 语句。​
Comparator​
String​
>​
告警比较条件,取值:​
  • > :大于​
  • >= :大于等于​
  • < :小于​
  • <= :小于等于​
  • == :等于​
  • != :不等于​
Threshold​
String​
0.8​
告警阈值。​
For​
String​
3m​
告警持续时间。​
Alerts​
Object Alerts​
-​
嵌套结构,展示告警资源详情。​
​
Alerts​
​
变量​
类型​
示例值​
说明​
Id​
String​
cdwaihonj434390ad​
告警事件 ID。​
Labels​
map[string]string​
​
"cluster": "ccmp26s0bjh01jhk860f0",​
"namespace": "default",​
"service": "nginx",​
"pod": "nginx-85996***"""
​
告警事件中的故障资源详情。​
Value​
Float64​
0.84​
告警事件值。​
说明​
该参数仅适用于 告警通知 模板,不适用于 告警恢复通知 模板。​
StartsAt​
time.Time​
2024-02-02 17:13:32.065 +0800 CST​
告警事件开始时间。​
EndsAt​
time.Time​
2024-02-02 17:13:32.065 +0800 CST​
告警事件结束时间。​
说明​
该参数仅适用于 告警恢复通知 模板,不适用于 告警通知 模板。​
DetailURL​
String​
https://console.volcanicengine.com/prometheus/***/alert/alerting?detail_id=***​
告警事件在控制台上的链接。使用该链接可以直接跳转到对应的告警事件。​
​
扩展函数​
​
函数​
说明​
​
vkeClusterName​
基于 VKE 集群的clusterID 获取集群名称。​
通过 VKE 集群中的采集组件写入的 VKE 指标都会携带cluster标签,其值为集群 ID。您也可以使用扩展函数在告警通知中获取集群名称,配置方法如下:​
  1. 保证在告警时,产生的告警事件包含cluster标签,例如:可以使用sum(up)by(job,cluster)在配置告警时实现cluster维度上的聚合。此时,告警事件的 Label 列表中就会包含cluster标签。​
  1. 配置告警消息模版时,使用vkeClusterName函数获取集群名称。示例为如下代码的第 4 行。​
​
{{ range $i, $alert := .Alerts -}}​
{{ if lt $i 5 -}}​
第{{ add1 $i }}个资源{{ if $alert.Annotations }}:​
集群名称: {{ $alert.Labels.cluster | vkeClusterName }}​
{{- range $key, $value := $alert.Labels }}​
{{ $key }}: {{ $value }}​
{{- end }}​
当前值:{{ $alert.Value }}​
告警事件ID: {{ $alert.Id }}​
告警开始时间:{{ date "2006-01-02T15:04:05Z07:00" $alert.StartsAt }}​
​
---​
​
{{ else if eq $i 5 -}}​
仅展示前5个故障资源详情,请点击[告警事件详情]({{ $.AlertListConsoleURL }})查看更多​
{{- end }}​
{{- end }}​
​
arkEndpointName​
基于endpointID获取 endpoint 名称。​
火山方舟平台写入的指标都会携带ark_endpoint标签,其值为接入点 ID,您也可以使用扩展函数在告警通知中获取接入点的名称,配置方法如下:​
  1. 保证在告警时,产生的告警事件含ark_endpoint标签,例如:如可以使用sum by(ark_endpoint,api)(rate(ark_api_proxy_request_total{}[2m]))在配置告警时实现ark_endpoint维度上的聚合,此时,告警事件的 Label 列表中会包含ark_endpoint标签。​
  1. 配置告警消息模版时,使用arkEndpointName函数获取接入点名称。示例为如下代码的第 4 行。​
​
{{ range $i, $alert := .Alerts -}}​
{{ if lt $i 5 -}}​
第{{ add1 $i }}个资源{{ if $alert.Annotations }}:​
接入点名称: {{ $alert.Labels.ark_endpoint | arkEndpointName }}​
{{- range $key, $value := $alert.Labels }}​
{{ $key }}: {{ $value }}​
{{- end }}​
当前值:{{ $alert.Value }}​
告警事件ID: {{ $alert.Id }}​
告警开始时间:{{ date "2006-01-02T15:04:05Z07:00" $alert.StartsAt }}​
​
---​
​
{{ else if eq $i 5 -}}​
仅展示前5个故障资源详情,请点击[告警事件详情]({{ $.AlertListConsoleURL }})查看更多​
{{- end }}​
{{- end }}​
​
last30minAlertDetailImageLarkKey​
获取最近 30 分钟告警流转图片在飞书服务端的 image key。​
​
该扩展函数仅飞书应用机器人通知模版可用。​
​
{{- $larkImageKey := last30minAlertDetailImageLarkKey }} {{if $larkImageKey }}​
最近 30min 告警详情​
![飞书图片]({{$larkImageKey}}) {{end}}​
​
注意​
请保证飞书应用机器人更新到最新版本。​​​
last30minAlertDetailImageBase64​
获取最近 30 分钟告警流转图片的 Base64 值。​
该扩展函数仅邮件通知模版可用。​
​
<img src="{{last30minAlertDetailImageBase64}}" alt="图片描述">​
​
​
​
配置示例​
除系统预置的告警模板外,您可以基于告警变量的数据结构、Go Template 语法和 Markdown 语法,配置自定义消息模板的内容,示例如下。​
注意​
  • 故障资源详情由.Alerts.Labels变量获取,不同资源的Labels可能不同。本示例中的Labels.*(例如$alert.Labels.instance)仅为举例。实际配置时,您需要配置为资源存在的Labels变量。​
  • 如果您的消息模板中涉及多种不同资源,也可以不指定具体的Label变量,直接遍历每个故障资源的详情。配置方式请参见 模板示例说明。​
​
**告警信息**:​
​
---​
​
告警地域:{{ .Region }}​
告警规则名称:{{ .AlertingRuleName }}​
告警规则描述:{{ .AlertingRuleDescription }}​
告警规则 URL:{{ .AlertingRuleDetailURL }}​
告警等级:{{ .Level }}​
告警规则中的 PromQL 语句:{{ .PromQL }}​
告警比较条件:{{ .Comparator }}​
告警阈值:{{ .Threshold }}​
告警持续时间:{{ .For }}​
​
---​
{{- $alertCount := len .Alerts }}​
{{- $maxAlerts := 10 }}​
​
**故障资源详情 ({{ $alertCount }} 个)**:​
{{- range $idx, $alert := .Alerts }}​
{{- if lt $idx 10 }}​
{{- $labels := "" -}}​
<br>​
故障资源 ID:{{- $alert.Id }}​
故障资源集群:{{- $alert.Labels.cluster }}​
故障资源实例:{{- $alert.Labels.instance }}​
故障资源 job:{{- $alert.Labels.job }}​
故障资源指标当前值:{{- $alert.Value }}​
故障开始时间:{{- $alert.StartsAt }}​
告警事件 URL:{{- $alert.DetailURL}}​
{{- end }}​
{{- end }}​
​
---​
​
{{- if gt $alertCount $maxAlerts }}​
**资源数量已超过 {{ $maxAlerts }} 个,完整告警请跳转控制台**。​
{{- end }}​
​
上述示例的实际生效效果如下图所示。​
​alt​​
​
最近更新时间:2026.09.04 14:32:33
这个页面对您有帮助吗?
有用
有用
无用
无用