You need to enable JavaScript to run this app.
文档中心
全栈可观测平台

全栈可观测平台

复制全文
下载 pdf
通知模板
云产品事件扩展函数与变量
复制全文
下载 pdf
云产品事件扩展函数与变量
通知内容模板中允许使用预置的告警变量,本文为您介绍云产品事件预置的告警变量结构和参数含义。
扩展函数
通知内容模板中,支持 Go Template 内置函数和扩展函数。详情如下表所示:
函数
说明
Go Template 内置函数
通知内容模板支持使用 Go Template 内置函数,详情请参见 官方文档
translate
将变量值转换为自然语言。
translate(type string, lang string, val string) string
  • type:变量名
  • 告警模板:支持 RegionTypeLevelNamespace 变量。
  • 事件模板:支持 RegionTypeLevelSourceEvent 变量。
  • lang:转换目标语言,当前只支持zh(中文)和 en(英文)。
  • val:变量值。
通用整形数字计算函数
  • 和:add(i ...interface{}) int64
  • 差:sub(a, b interface{}) int64
  • 最大值:max(a interface{}, i ...interface{}) int64
  • 最小值:min(a interface{}, i ...interface{}) int64
集合操作函数
切片
  • slice(list interface{}, indices ...int) interface{}
map
  • get(m map[string]interface{}, key string) interface{}
字符串函数
  • 截断:trunc(c int, s string) string
  • 截取:substr(start int, end int, s string) string
  • 去除空白字符:trim(s string) string
  • 包含:contains(substr string, str string) bool
  • 前缀:hasPrefix(substr string, str string) bool
  • 后缀:hasSuffix(substr string, str string) bool
  • 转义:quote(str ...interface{}) string
  • 拼接:join(sep string, v interface{}) string
  • 替换:replace(old string, new string, src string) string
  • 转字符串:toString(v interface{}) string
时间函数
  • 如果变量是time.Time类型,可以使用时间函数.Format定义时间显示格式。例如 {{ .HappenedAt.Format "2006-01-02 15:04:05(UTCZ07:00)" }}
JSON 操作
  • JSON:toJson(v interface{}) string
  • PrettyJSON:toPrettyJson(v interface{}) string
数据结构
本文通过以下 JSON 示例代码,展示了云产品事件模板所支持的变量、参数和数据结构。方便您理解 Go Template 的常用语法和使用方式。
{
"Type": "Event",
"SiteName": "云监控",
"AccountName": "user-demo",
"AccountId": "21000*****",
"Source": "ecs",
"Level": "critical",
"Id": "1803******",
"Event": "ecs:Instance:RebootInstance.Executing",
"HappenedAt": "2025-01-01 00:00:00(UTC+08:00)",
"Region": "cn-beijing",
"ResourceId": "i-yd9j*****",
"ResourceName": "ecs-demo",
"ProjectName": "default",
"TagSet": [
{
"Key": "test",
"Value": "test"
}
],
"Details": [
{
"id": "687f47006e921c57c64b79fb",
"resourceid": "subnet-3rej6jce9fev45zs***",
"source": "vpc"
}
],
"Rules": [
{
"RuleId": "19251*****",
"RuleName": "event-demo",
"Level": "critical",
"RuleURL": "https://console.volcengine.com/observe/cloud-monitor/event/rules/detail?id=1790****"
}
],
"HistoryURL": "https://console.volcengine.com/observe/cloud-monitor/alert/history"
}
{
"Type": "Event",
"SiteName": "CloudMonitor",
"AccountName": "user-demo",
"AccountId": "21000*****",
"Source": "ecs",
"Level": "critical",
"Id": "1803******",
"Event": "ecs:Instance:RebootInstance.Executing",
"HappenedAt": "2025-01-01 00:00:00(UTC+08:00)",
"Region": "cn-beijing",
"ResourceId": "i-yd9j*****",
"ResourceName": "ecs-demo",
"ProjectName": "default",
"TagSet": [
{
"Key": "test",
"Value": "test"
}
],
"Details": [
{
"id": "687f47006e921c57c64b79fb",
"resourceid": "subnet-3rej6jce9fev45zs***",
"source": "vpc"
}
],
"Rules": [
{
"RuleId": "19251*****",
"RuleName": "event-demo",
"Level": "critical",
"RuleURL": "https://console.byteplus.com/observe/cloud-monitor/event/rules/detail?id=1790****"
}
],
"HistoryURL": "https://console.byteplus.com/observe/cloud-monitor/alert/history"
}
变量说明
说明
  • 对于非嵌套变量,可以使用 Go Template 标准方式,获取变量的值。例如{{ .Region }}
  • 对于嵌套变量,需要通过自定义变量的方式获取所有的资源。例如定义$rule变量,然后通过遍历的方式获取所有的资源{{ range $idx, $rule := .Rules }}。对于内部变量,则需使用$rule.字段名的方式获取变量的值,例如{{ $rule.RuleId }}
通知内容模板中,可以使用的预置变量和说明,如下表所示。
变量名
类型
说明
示例值
用法示例
Type
String
告警类型,取值固定为Event
Event
  • 直接渲染:{{ .Type }}
  • 使用扩展函数翻译为自然语言:{{ translate "Type" "zh" .Type }},例如将Event翻译为事件
SiteName
String
站点名称。
云监控
{{ .SiteName }}
AccountName
String
账号名称。
user-demo
{{ .AccountName }}
AccountId
String
账号 ID。
21000*****
{{ .AccountId }}
Source
String
事件来源。
ecs
  • 直接渲染:{{ .Source }}
  • 使用扩展函数翻译为自然语言:{{ translate "Source" "zh" .Source }},例如将ecs翻译为云服务器
Level
String
事件级别,取值:
  • critical:严重
  • warning:警告
  • notice:通知
说明
若匹配多个规则,取最高级别。
critical
  • 直接渲染:{{ .Level }}
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" .Level }},例如将critical翻译为严重
Id
String
事件 ID。
1803******
{{ .Id }}
Event
String
事件类型。
ecs:Instance:RebootInstance.Executing
  • 直接渲染:{{ .Event }}
  • 翻译为自然语言:{{ translate "Event" "zh" .Event }},例如将ecs:Instance:RebootInstance.Executing 翻译为 重启实例:执行中
HappenedAt
time.Time
事件发生时间。
2025-01-01 00:00:00(UTC+08:00)
格式化时间:{{ .HappenedAt.Format "2006-01-02 15:04:05(UTCZ07:00)" }}
Region
String
云产品资源所属地域。
cn-beijing
  • 直接渲染:{{ .Region }}
  • 使用扩展函数翻译为自然语言:{{ translate "Region" "zh" .Region }},例如将cn-beijing翻译为 华北2(北京)
ResourceId
String
云产品资源 ID。
i-yd9j*****
{{ .ResourceId }}
ResourceName
String
云产品资源名称。
ecs-demo
{{ .ResourceName }}
ProjectName
String
云产品资源所属项目名称。
default
{{ .Project }}
TagSet
Array of Tag
云产品资源标签,每个标签包含KeyValue
-
遍历标签:
{{ range $idx, $tag := .Tags }}
{{ $tag.Key }}: {{ $tag.Value }}
{{ end }}
Details
map[string]interface{}
事件详情。
说明
不同云产品的事件格式不同。
-
遍历详情:
{{ range $key, $val := .Details }}
{{ $key }}: {{ $val }}
{{ end }}
Rules
Array of EventRule
匹配的事件规则列表。
-
遍历规则:
{{ range $idx, $rule := .Rules }}
{{ $rule.RuleName }} ({{ $rule.Level }})
{{ end }}
HistoryURL
String
事件中心链接。
https://console.volcengine.com/observe/cloud-monitor/alert/history
{{ .HistoryURL }}
EventRule
变量名
类型
说明
示例值
用法示例
RuleId
String
事件规则 ID。
19251****
{{ $rule.RuleId }}
RuleName
String
事件规则名称。
event-demo
{{ $rule.RuleName }}
Level
String
事件规则级别,取值:
  • critical:严重
  • warning:警告
  • notice:通知
critical
  • 直接渲染:{{ $rule.Level }}
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" $rule.Level }},例如将critical翻译为严重
RuleURL
String
事件规则链接。
https://console.volcengine.com/observe/cloud-monitor/event/rules/detail?id=1790****
{{ $rule.RuleURL }}
配置示例
除系统预置的事件模板外,您可以基于事件变量的数据结构、Go Template 语法和 Markdown 语法,配置自定义内容模板的内容,示例如下。
**事件信息**:
---
告警类型:{{ .Type }}
账号名称:{{ .AccountName }}
账号 ID:{{ .AccountId }}
事件来源:{{ .Source }}
事件级别:{{ .Level }}
事件 ID:{{ .Id }}
事件类型:{{ .Event }}
事件发生时间:{{ .HappenedAt }}
云产品所属地域:{{ .Region }}
云产品资源 ID:{{ .ResourceId }}
云产品资源名称:{{ .ResourceName }}
事件中心链接:{{ .HistoryURL }}
---
**产生事件的资源详情**:
{{- range $key, $val := .Details }}
{{ $key }}: {{ $val }}
{{- end }}
最近更新时间:2026.07.01 17:46:30
这个页面对您有帮助吗?
有用
有用
无用
无用