You need to enable JavaScript to run this app.
导航

变量结构和参数

最近更新时间2024.02.19 10:25:59

首次发布时间2024.02.02 17:21:37

通知消息模板中允许使用预置的告警变量,本文为您介绍预置的告警变量的结构和参数的含义。

数据结构

本文通过以下 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(广州)

说明

更多地域信息,请参见 地域和可用区

AlertingRuleNameStringCPU 利用率大于 80%告警规则的名称。
AlertingRuleDescriptionStringalarm description告警规则的描述信息。
AlertingRuleDetailURLStringhttps://console.volcanicengine.com/prometheus/***3503d49e/detail告警规则的 URL 链接。使用该链接可以直接跳转到对应的告警规则。
LevelStringP0告警等级。取值为 P0、P1 和 P2。
PromQLStringrate(cpu_total[1m])告警规则中用于触发告警的 PromQL 语句。

Comparator

String

>

告警比较条件,取值:

  • > :大于
  • >= :大于等于
  • < :小于
  • <= :小于等于
  • == :等于
  • != :不等于
ThresholdString0.8告警阈值。
ForString3m告警持续时间。
AlertsObject Alerts-嵌套结构,展示告警资源详情。

Alerts

变量类型示例值说明
IdStringcdwaihonj434390ad告警事件 ID。

Labels

map[string]string

"cluster": "ccmp26s0bjh01jhk860f0",
"namespace": "default",
"service": "nginx",
"pod": "nginx-85996***"

告警事件中的故障资源详情。

Value

Float64

0.84

告警事件值。

说明

该参数仅适用于 告警通知 模板,不适用于 告警恢复通知 模板。

StartsAttime.Time2024-02-02 17:13:32.065 +0800 CST告警事件开始时间。

EndsAt

time.Time

2024-02-02 17:13:32.065 +0800 CST

告警事件结束时间。

说明

该参数仅适用于 告警恢复通知 模板,不适用于 告警通知 模板。

DetailURLStringhttps://console.volcanicengine.com/prometheus/***/alert/alerting?detail_id=***告警事件在控制台上的链接。使用该链接可以直接跳转到对应的告警事件。

配置示例

除系统预置的告警模板外,您可以基于告警变量的数据结构、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