通知策略或事件中匹配的规则被触发后,将根据通知模板中定义的内容,通过邮箱、飞书、钉钉、电话、Webhook 等方式发送通知消息。系统默认为各个通知类型预置通知标题或通知内容,若预置模板不符合要求,可根据实际场景自定义通知模板。本文为您介绍编写通知模板时支持的语法。
说明
模板撰写语法通用,但不同通知类型支持的扩展函数和变量存在差异,更多详细说明参见:
.字符用于在当前作用域下,渲染指定的对象。
示例 1:取顶级作用域下的所有内容,即告警信息中的全部内容。
预期返回结果:输出告警信息的全部内容。
示例 2:获取告警策略的Region字段。
预期返回结果如下:
变量用于保存传入的数据,数据传入变量后,整个模板都能通过变量访问该数据。例如,在{{$rulename := .RuleName}}中使用$rulename作为变量,保存告警策略名称,然后可以使用{{$rulename}}访问变量。
示例:将告警策略名称保存在$rulename,然后输出$rulename。
{{ $rulename := .RuleName }} {{$rulename}}
预期返回结果:
判断语句if/else使用if检查数据,如果不满足条件,则执行else的内容。当if语句的判断条件为 空值、0、nil、空字符串 或 长度为 0 的字符串 时,都返回false。
示例:如果告警信息中的.Level值等于warning,则输出Warning 级别告警。
{{if eq "warning" .Level }} Warning 级别告警 {{ end }}
预期返回结果:
比较函数用于比较 2 个数据的大小,常与判断语句if/else搭配使用,用于对语句执行情况进行判断。常用的比较函数如下表所示。
示例:如果.Level值等于warning,则输出Warning 级别告警。
{{if eq "warning" .Level }} Warning 级别告警 {{ end }}
预期返回结果:
逻辑函数主要包括and、or和not,用于在多个条件中取 非、与 和 或 逻辑。
示例:如果Region的值为cn-beijing,并且Level的值为warning,则输出北京 Warning 级别告警。
{{if eq "cn-beijing" .Region and eq "warning" .Level }} 北京 Warning 级别告警 {{ end }}
返回结果:
Go Template 中的常用内置函数,如下表所示。