本文介绍告警支持的内容模板变量以及引用方式。

引用方式

配置行动策略时必须选择内容模板,内容模板定义具体的发送内容和主题。您可以在发送内容主题中,通过${fieldName}方式引用模板变量。日志服务发送告警通知时,会将发送内容主题中的模板变量替换为真实值,例如${project}替换为告警规则所属的Project名称。
注意 引用变量时,变量名称必须完全匹配。对于不存在的变量或者不合法的引用默认替换为空字符串。如果引用的值为对象类型,则会转换为JSON字符串。

可用变量及其引用

目前支持的所有可用变量及引用方式如下表所示。
变量 说明 取值示例 引用示例
aliuid Project所属的阿里云账号ID。 1234567890 ${aliuid}用户的告警规则已触发。
alert_instance_id 告警触发的实例的ID。 ee16a8f435485f3f-5be6b81edc520-3d69233 实例ID为${alert_instance_id}。
project 告警规则所属Project。 my-project ${project}项目中的告警规则已触发。
alert_id 告警规则ID,Project内唯一。 0fdd88063a611aa114938f9371daeeb6-1671a52eb23 告警规则ID是${alert_id}。
alert_type
  • sls_alert:由告警监控规则触发的告警。
  • sls_pub:来自于开放告警中的告警。
sls_alert 告警类型是${alert_type}。
alert_name 告警规则名称。 告警规则new2 告警规则${alert_name}已经触发。
next_eval_interval 下一次评估间隔。 900 下一次评估时间为${next_eval_interval}秒后。
alert_time 本次评估时间。 1616744734 本次评估告警的时间为${alert_time}。
fire_time 首次触发时间。 1616059834 告警首次触发时间为${fire_time}。
status 告警状态,包括触发告警(firing)和恢复通知(resolved)。 firing 告警状态为${status}。
resolve_time 告警恢复时间。
  • 如果告警状态是firing,取值为0。
  • 如果告警状态是resolved,取值为具体恢复时间。
0 告警恢复的时间为${resolve_time}。
results 查询参数和中间结果,数组类型。字段解释请参见QueryData结构
[
{
"store_type": "log",
"region": "cn-hangzhou",
"project": "sls-alert-test",
"store": "test",
"query": "* | select count(1) as cnt",
"start_time": 1616741485,
"end_time": 1616745085,
"dashboard_id": "mydashboard",
"raw_results": [{"cnt": "4"}],
"raw_result_count": 1,
"fire_result": {"cnt": "4"},
"truncated": false,
"role_arn": ""
}
]
第一个查询的开始时间为 ${results[0].start_time};结束时间为 ${results[0].end_time};count的值为 ${results[0].fire_result.count}。
说明 其中0为图表编号,详情请参见如何查看图表编号
labels 标签列表。 {"env":"test"} 告警标签为${labels}。
annotations 标注列表。 { "title": "告警标题","desc": "告警描述" } 告警标注为${annotations}。
severity 告警严重度,包括10(严重)、8(高)、6(中)、4(低)和2(仅报告)。 10 告警严重度为${severity}。
policy 告警策略或者行动策略。字段解释请参见Policy结构
{"alert_policy_id": "sls.test-alert","action_policy_id": "sls.test-action","use_default": false,"repeat_interval": "6m0s"}
告警策略ID为 ${policy.alert_policy_id}。
region 地域 cn-hangzhou 告警触发的地域为${region}。
drill_down_query 用于下钻分析的查询语句。在自定义告警中值为空,目前适用于日志审计服务、成本管家和SLB日志中心的告警内容模板。 * | select count(1) as cnt
alert_url 告警的详细URL地址。 https://sls.console.aliyun.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 告警URL为${alert_url}。
query_url 查询统计中第一个查询页面的URL地址。 https://sls-stg.console.aliyun.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbnQ%3D&queryTimeType=99&startTime=1617175089 查询统计中第一个查询页面的URL地址为:${query_url}
alert_history_dashboard_url 告警历史统计报表的URL地址。 https://sls.console.aliyun.com/lognext/project/test-xx/dashboard/internal-alert-analysis 告警历史统计报表的URL地址为${alert_history_dashboard_url}。
condition 触发告警的评估表达式。其中,以触发告警的值替换设置的变量,并使用中括号包裹。格式为Count:数量表达式; Condition:匹配表达式 Count:[5] > 3;Condition:[www.mro.mock.com]=='www.mro.mock.com' 告警评估表达式为${condition}。
raw_condition 原始的评估表达式,即condition中不替换变量的原始表达式。格式为Count:数量表达式; Condition:匹配表达式 Count:__count__ > 3;Condition:host=='www.mro.mock.com' 原始评估表达式为${raw_condition}。
dashboard 告警关联的仪表盘ID。 mydashboard 告警关联的仪表盘名称为${dashboard}。
dashboard_url 告警关联的仪表盘地址。 https://sls.console.aliyun.com/next/project/myproject/dashboard/mydashboard 告警关联的仪表盘地址为${dashboard_url}。
fire_results 触发告警的数据,即集合操作后的数据,最多100条。 [{"host":"www.xhu.mock.com","host__1":"www.iks.mock.com","pv":"836","slbid":"slb-02","status":"200"},{"host":"www.ykw.mock.com","host__1":"www.iks.mock.com","pv":"836","slbid":"slb-02","status":"200"},{"host":"www.mro.mock.com","host__1":"www.iks.mock.com","pv":"836","slbid":"slb-02","status":"200"},{"host":"www.amh.mock.com","host__1":"www.iks.mock.com","pv":"836","slbid":"slb-02","status":"200"},{"host":"www.uua.mock.com","host__1":"www.ue.mock.com","pv":"780","slbid":"slb-01","status":"200"}] 告警触发时产生的数据为${fire_results}。
fire_results_count 触发告警的数据的总条数,可能多于100,比如笛卡尔积操作后的总条数。 3 告警触发时产生的总数据条数为${fire_results_count}。
fire_results_as_kv 触发告警的数据,即集合操作后的数据,最多100条。以[key1:value1,key2:value2]形式展示。 [host:www.xhu.mock.com,pv:836,status:200][host:www.uua.mock.com,pv:780,status:200] 告警触发时产生的数据详情为${fire_results_as_kv}。

Policy结构

字段 描述 举例
alert_policy_id 告警策略ID。 sls.test-alert
action_policy_id 告警监控规则指定的行动策略ID(仅在告警策略使用动态行动策略时有用)。 sls.test-action
repeat_interval 重复等待时间(仅在告警策略使用行动策略时有用)。 4h

QueryData结构

results变量中可引用字段如下:

字段 描述 举例
role_arn 使用服务角色。 acs:ram::1234567890:role/aliyunslsalertmonitorrole
store_type 存储类型。
  • log:日志。
  • metric:时序数据。
  • meta:资源数据。
log
region 查询统计目标库所在地域。存储类型为资源数据时,该字段取值为空。 cn-hangzhou
project 查询统计目标库所在Project。存储类型为资源数据时,该字段取值为空。 sls-test-alert
store 查询统计目标库名称。 test-logstore
query 查询语句。 error | select count(1) as cnt
start_time 查询开始时间。存储类型为资源数据时,该字段取值为空。 2006-01-02 15:04:05
start_time_ts 查询开始时间,Unix格式。存储类型为资源数据时,该字段取值为空。 1616741485
end_time 查询结束时间。存储类型为资源数据时,该字段取值为空。 2006-01-02 15:04:05
end_time_ts 查询结束时间,Unix格式。存储类型为资源数据时,该字段取值为空。 1616745085
dashboard_id 查询时关联的仪表盘ID。 mydashboard
raw_results 实际查询内容,数组格式,最多100行。 [{"host":"www.zc.mock.com","slbid":"slb-02","status":"200"},{"host":"www.evi.mock.com","slbid":"slb-01","status":"200"},{"host":"www.fo.mock.com","slbid":"slb-02","status":"306"},{"host":"www.gnp.mock.com","slbid":"slb-02","status":"200"},{"host":"www.tha.mock.com","slbid":"slb-01","status":"200"},{"host":"www.aoi.mock.com","slbid":"slb-02","status":"200"}]
fire_result 告警触发内容中的第一条数据。告警触发结果集可能包含多条数据,该参数只返回第一条数据。 {"host":"www.zc.mock.com","slbid":"slb-02","status":"200"}