在配置告警通知内容时,除固定的文字内容字符串之外,还可以添加变量。本文档介绍变量的格式和支持的变量列表。
告警通知内容中可直接引用内容变量,变量格式为{{变量名称}}
,变量必须被两个大括号{{ }}
包裹。日志服务发送告警通知时,会自动将通知内容中的变量替换为对应的实际值。例如对于内容变量 {{AccountID}}
,日志服务会将其替换为当前告警策略所属的火山引擎账号 ID。
说明
{{a[i][j].b}}
格式获取数组对象中子字段的值,例如{{QueryResult[0][0].count}}
。日志服务告警通知内容中支持引用以下变量。
变量 | 类型 | 含义 | 示例 |
---|---|---|---|
{{AccountID}} | String | 告警策略所属的火山引擎账号 ID。 |
|
{{UserName}} | String | 告警策略所属的火山引擎账号的用户名。 说明 不推荐在飞书、钉钉、企业微信和自定义 Webhook 渠道的内容模板中使用该变量,因为在这些渠道中使用时,变量值为空。 |
|
{{ProjectName}} | String | 触发告警的日志项目。 |
|
{{AlarmTopicName}} | String | 触发告警的日志主题。 |
|
{{NotifyMsg}} | String | 告警策略的附加通知内容中的原始内容被渲染后的内容。 说明
|
|
{{Region}} | String | 告警策略所属日志项目的所在地域。 |
|
{{Alarm}} | String | 告警策略名称。 |
|
{{AlarmID}} | String | 告警策略 ID。 |
|
{{ExecuteQuery}} | []String | 告警策略中配置的查询语句。 |
|
{{Duration}} | String | 告警的持续时间,单位为分钟。 |
|
{{Condition}} | String | 告警策略中配置的触发条件。 |
|
{{HappenThreshold}} | Integer | 告警策略中配置的发送告警周期。 |
|
{{Topics}} | []String | 告警策略中配置的 |
|
{{TopicIds}} | []String | 告警策略监控的所有日志主题的 ID。 |
|
{{StartTime}} | String | 一个完整的告警事件中,第一次触发告警的时间。 说明 从告警触发到告警恢复为一个完整的告警事件,告警恢复表示本次告警事件结束。 |
|
{{StartTimeUnix}} | Integer | 告警事件中第一次触发告警的时间戳。格式为秒级 UNIX 时间戳。 |
|
{{NotifyTime}} | String | 本次告警通知的时间。 |
|
{{NotifyTimeUnix}} | Integer | 本次告警通知的时间戳。格式为秒级 UNIX 时间戳。 |
|
{{NotifyType}} | Integer | 告警通知类型。
|
|
{{Severity}} | String | 告警策略中配置的
|
|
{{ConsecutiveAlertNums}} | Integer | 连续告警次数。 |
|
{{TriggerParams}} | []String | 告警触发时,触发条件中字段对应的实际值。 |
|
{{DetailUrl}} | String | 告警策略的执行信息页面链接。详细说明请参考执行历史。 |
|
{{QueryUrl}} | String | 告警策略中,第一个执行语句的检索分析页面链接。 |
|
{{Message}} | String | 在告警策略的附加通知内容中填写的原始内容。 |
|
{{QueryResult}} | [][]Object | 触发告警时检索查询语句的执行结果。最多返回 10 行结果,总长度为 2KB。对象类型,建议通过 toJson 或 toString 进行格式转换。详细信息请参考 {{QueryResult}} 。 | 示例请参考QueryResult。 |
{{QueryResultStr}} | []String | 以字符串数组形式返回 QueryResult 结果。 | 示例请参考QueryResult。 |
{{QueryLog}} | [][]Object | 执行语句中检索条件匹配到的原始日志信息,不包含分析语句中的过滤条件。对象类型,建议通过 toJson 或 toString 进行格式转换。最多返回 10 条原始日志,总长度为 2KB。详细信息请参考 QueryLog。 | 示例请参考QueryLog。 |
{{QueryLogStr}} | []String | 以字符串数组形式返回 QueryLog 结果。最多返回 10 条原始日志,长度为 2KB。 | 示例请参考QueryLog。 |
{{QueryStartTime}} | Integer | 告警策略中最后一条执行语句的起始时间,格式为秒级 Unix 时间戳。查看执行语句编号的方式请参考如何查看执行语句编号?。 |
|
{{QueryEndTime}} | Integer | 告警策略中最后一条执行语句的结束时间,格式为秒级 Unix 时间戳。查看执行语句编号的方式请参考如何查看执行语句编号?。 |
|
{{Results}} | []QueryData | 查询参数和中间结果,数组类型,数组长度最大为 3。详细说明请参考 QueryData 结构。 |
|
{{FireResults}} | []Object | 触发告警的数据,即集合操作后的结果,最多 100 条。 |
|
{{FireResultsCount}} | Integer | 触发告警的检索分析结果条数集合操作后的数据总量,可能多于 100。 |
|
{{SignInUrl}} | String | 告警详情页面链接,通过此链接可免登录查看告警的详细信息、变更处理人等相关操作。详细说明请参考免登录访问告警详情页面。 |
|
Results
变量表示查询参数和中间结果。其中可引用的变量如下。
变量 | 数据类型 | 说明 | 示例 |
---|---|---|---|
TopicId | String | 检索分析的目标日志主题 ID。 | fed25df2-cc27-4b0a-8ad2-773aef61**** |
Query | String | 检索分析语句。 | error |
StartTime | Integer | 查询开始时间,格式为 10 位的 Unixtime 时间戳。 | 1699411640 |
EndTime | Integer | 查询结束时间,格式为 10 位的 Unixtime 时间戳。 | 1699412200 |
RawResults | []Object | 实际查询结果,数组格式,最多 100 行。 | [{"cnt":"0"}] |
RawResultsCount | Integer | 实际查询数据的总条数,可能多于 100。 | 1 |
FireResult | Object | 触发告警的日志内容。可能有多条原始日志触发了告警策略,此参数仅返回触发告警的第一条原始日志数据。 | {"cnt":"0"} |
变量说明QueryResult
结构用于表示触发告警时查询语句的执行结果。您可以通过函数语法对其属性进行二次处理。该变量以对象类型返回,访问每一个属性时,应通过英文句号(.)指定其属性,例如{{log.name}}
、{{log.名称}}
、{{QueryResult[0][0].count}}
。
说明
QueryResultStr
。变量示例
例如告警策略配置的执行语句为 type:1 | select count(*) as count
,对应的变量值为:
[ [ { "count": 1 } ], ]
变量说明QueryLog
结构用于表示执行语句中检索条件匹配到的原始日志信息,不包含分析语句中的过滤条件。QueryLog
变量以二维对象数组类型返回,访问每一个属性时,应通过英文句号(.)指定其属性,例如 {{log.name}}
、{{log.名称}}
。
说明
QueryLogStr
。变量示例
通知内容配置示例:
{%-for logs in QueryLog%} {%- for log in logs%} {{log.name}} {{log.type}} {{log.double_key}} {{log.obj_key.key1}} {{log.obj_key.key2}} {{log.obj_key.key_long}} {{log.obj_key.key_double}} {%endfor-%} {%endfor-%}
或者:
{{toPrettyJson(QueryLog)}}
渲染结果示例:
[ [ { "double_key": 1.1, "name": "volcengine", "obj_key": { "key1": 1, "key2": "key2", "key_double": 1.1, "key_long": 123 }, "type": 1 } ] ]
日志服务告警变量支持添加过滤器,过滤器为链式调用,用于对变量数据进行二次处理。
变量过滤器的格式为 {{变量|过滤器}}
,例如 {{toJson(FireResults)}}
的输出结果为{"a":123,"b":123}
,您可以使用{{toJson(FireResults)|escapejs}}
进行 unicode 编码,从而输出结果为 \u007b\u0022\u0061\u0022\u003a\u0031\u0032\u0033\u002c\u0022\u0062\u0022\u003a\u0031\u0032\u0033\u007d
。
过滤器 | 说明 | 示例 |
---|---|---|
escape | 对特殊字符进行自动转义。 |
|
escapejs | 对特殊字符进行 unicode 编码。 |
|
以下示例表示在告警通知中添加操作集合、操作集合数量、查询结果等信息,并在末尾添加免登录告警详情页面的链接。其中,查询结果部分会返回查询结果详情、日志主题 ID、查询检索语句等的详细信息。
操作集合:{{toJson(FireResults)}} 操作集合数量: {{FireResultsCount}} 查询结果: {{replace("*","\\*",toJson(Results))}} {%set result = Results[0]%} TopicId: {{result.TopicId}} Query: {{replace("*","\\*",result.Query)}} StartTime: {{result.StartTime}} EndTime: {{result.EndTime}} RawResults: {{toJson(result.RawResults)}} RawResultsCount: {{result.RawResultsCount}} FireResult: {{toJson(result.FireResult)}} 告警详情: {{SignInUrl}}