本文介绍新版内容模板的变量以及引用方式。
引用方式
重要 引用变量时,变量名称必须完全匹配。对于不存在的变量或者不合法的引用,系统默认替换为空字符串。如果引用的值为对象类型,则会转换为JSON字符串。
配置行动策略时必须选择内容模板,内容模板定义具体的发送内容和主题。您可以在发送内容和主题中,通过{{ alert.xxx }}
方式引用模板变量。日志服务发送告警通知时,会将发送内容和主题中的模板变量替换为真实值,例如{{ alert.project }}
替换为告警规则所属的Project名称。
除了直接引用变量外,您还可以通过控制流以及内置函数对变量进行操作和处理。具体的模板语法和内置函数请参见内容模板语法(新版)、内置模板函数。
告警属性
变量 | 说明 | 数据类型 | 取值示例 | 引用示例 |
---|---|---|---|---|
aliuid | Project所属的阿里云账号ID。 | string | 117918634953**** | {{ alert.aliuid }} 用户的告警规则已触发。 |
alert_instance_id | 告警触发的实例的ID。 | string | ee16a8f435485f3f-5be6b81edc520-3d6**** | 实例ID为{{ alert.alert_instance_id }} 。 |
alert_id | 告警规则ID,Project内唯一。 | string | alert-12345 | 告警规则ID是{{ alert.alert_id }} 。 |
alert_name | 告警规则名称。 | string | 测试告警规则 | 告警规则{{ alert.alert_name }} 已经触发。 |
alert_type | 告警类型。
| string | sls_alert | 告警类型是{{ alert.alert_type }} ,格式化显示为{{ alert.alert_type | format_type }} 。 |
region | 地域。 | string | cn-hangzhou | 告警触发的地域为{{ alert.region }} 。 |
project | 告警规则所属Project。 | string | my-project | {{ alert.project }} 项目中的告警规则已触发。 |
next_eval_interval | 下一次评估间隔,单位为秒。 | int | 300 | 下一次评估时间为{{ alert.next_eval_interval }} 秒后。 |
alert_time | 本次评估时间。 | int | 1616744734 | 本次评估告警的时间为{{ alert.alert_time }} ,格式化显示为{{ alert.alert_time | format_date }} 。 |
fire_time | 首次触发时间。 | int | 1616059834 | 告警首次触发时间为{{ alert.fire_time }} ,格式化显示为{{ alert.fire_time | format_date }} 。 |
status | 告警状态。
| string | firing | 告警状态为{{ alert.status }} ,格式化显示为{{ alert.status | format_status }} 。 |
resolve_time | 告警恢复时间。
| int | 0 | 告警恢复的时间为{{ alert.resolve_time }} ,格式化显示为{{ alert.resolve_time | format_date }} 。 |
severity | 告警严重度。
| int | 10 | 告警严重度为{{ alert.severity }} ,格式化显示为{{ alert.severity | format_severity }} 。 |
labels | 标签列表。 | map | {"env":"test"} | 告警标签为{{ alert.labels | to_list }} |
annotations | 标注列表。 | map | { "title": "告警标题","desc": "告警描述" } | 告警标注为{{ alert.annotations | to_list }} 。 |
results | 查询参数和中间结果,数组类型。变量取值说明,请参见QueryData结构。 | array |
| 第一个查询的开始时间为{{ alert.results[0].start_time }} ;结束时间为{{ alert.results[0].end_time }} ;count的值为{{ alert.results[0].fire_result.cnt }} ;查询和分析语句为{{ alert.results[0].query }} 。 |
fire_results | 触发告警的数据,即集合操作后的数据,最多100条。 fire_results的值超过2 KB时,超出部分会被截断。 | array |
| 告警触发时产生的数据为{{ alert.fire_results | to_json }} 。 |
fire_results_count | 触发告警的数据的总条数,可能多于100,例如笛卡尔积操作后的总条数。 | int | 3 | 告警触发时产生的总数据条数为{{ alert.fire_results_count }} 。 |
condition | 触发告警的评估表达式。其中,以触发告警的值替换您所配置的变量,并使用中括号([ ])包裹。格式为Count:数量表达式;Condition:匹配表达式 。 | string | Count:[5] > 3;Condition:[example.com]=='example.com' | 告警评估表达式为{{ alert.condition }} 。 |
raw_condition | 原始的评估表达式,即变量未被替换为真实值的原始表达式。格式为Count:数量表达式;Condition:匹配表达式 。 | string | Count:__count__ > 3;Condition:host=='example.com' | 原始评估表达式为{{ alert.raw_condition }} 。 |
policy | 告警策略或者行动策略。变量取值说明,请参见Policy结构。 | map |
| 告警策略ID为{{ alert.policy.alert_policy_id }} 。 |
dashboard | 告警关联的仪表盘名称。 | string | mydashboard | 告警关联的仪表盘名称为{{ alert.dashboard }} 。 |
alert_url | 告警的详细URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 | 告警URL为{{ alert.alert_url }} 。 |
query_url | 查询统计中第一个查询页面的URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbnQ%3D&queryTimeType=99&startTime=1617175089 | 查询统计中第一个查询页面的URL地址为{{ alert.query_url }} 。 |
alert_history_dashboard_url | 告警历史统计报表的URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xx/dashboard/internal-alert-analysis | 告警历史统计报表的URL地址为{{ alert.alert_history_dashboard_url }} 。 |
dashboard_url | 告警关联的仪表盘地址。 | string | https://sls.console.aliyun.com/next/project/myproject/dashboard/mydashboard | 告警关联的仪表盘地址为{{ alert.dashboard_url }} 。 |
fingerprint | 告警指纹。更多信息,请参见基于告警指纹去重。 | string | 478325709134bc5c | 告警指纹为{{ alert.fingerprint }} 。 |
signin_url | 免登录控制台即可查看告警详情。更多信息,请参见免登录查看告警详情。 | string | https://sls.console.aliyun.com/console/AlertAjax/slsSignIn.json?token=xxxx | [查看详情]({{ alert.signin_url }}) 。 |
Policy结构
policy变量中可引用的变量说明如下表所示。
变量 | 说明 | 数据类型 | 取值示例 |
---|---|---|---|
alert_policy_id | 告警策略ID。 | string | sls.test-alert |
action_policy_id | 告警监控规则指定的行动策略ID,仅在告警策略使用动态行动策略时有用。 | string | sls.test-action |
repeat_interval | 重复等待时间,仅在告警策略使用动态行动策略时有用。 | string | 4h |
QueryData结构
results变量中可引用的变量说明如下表所示。
变量 | 说明 | 数据类型 | 取值示例 |
---|---|---|---|
store_type | 存储类型。
| string | log |
region | 查询统计目标库所在地域。 存储类型为资源数据时,该变量值为空。 | string | cn-hangzhou |
project | 查询统计目标库所在Project。 存储类型为资源数据时,该变量值为空。 | string | sls-test-alert |
store | 查询统计中的目标库名称。 | string | test-logstore |
query | 查询语句。 | string | error | select count(1) as cnt |
start_time | 查询开始时间。 存储类型为资源数据时,该变量值为空。 | int | 1616741485 |
end_time | 查询结束时间。 存储类型为资源数据时,该变量值为空。 | int | 1616745085 |
raw_results | 实际查询内容,数组格式,最多100行。 raw_results的值超过2 KB时,超出部分会被截断。 | array |
|
raw_results_count | 实际查询数据的总条数,可能多于100。 | int | 20 |
fire_result | 告警触发内容中的第一条数据。告警触发结果集可能包含多条数据,该参数只返回第一条数据。 | map |
|
query_url | 查询的URL地址。 存储类型为资源数据时,该字段值为空。 | string | https://sls.console.aliyun.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbnQ%3D&queryTimeType=99&startTime=1617175089 |
dashboard_url | 查询关联的仪表盘地址。 | string | https://sls.console.aliyun.com/next/project/myproject/dashboard/mydashboard |
role_arn | 使用服务角色的ARN。 | string | acs:ram::117918634953****:role/aliyunslsalertmonitorrole |