本文介绍新版内容模板的变量以及引用方式。
引用方式
引用变量时,变量名称必须完全匹配。对于不存在的变量或者不合法的引用,系统默认替换为空字符串。如果引用的值为对象类型,则会转换为JSON字符串。模板的变量名称规则:大小写字母、数字、下划线,且不以数字开头。
如果模板变量名称符合标准规则,则可以通过
{{alert.xxx}}
获取变量。如果模板变量名称不符合标准规则,例如变量名称为
__tag__:__namespace__
,获取变量的方法为{{alert.annotations["__tag__:__namespace__"] }}
。
配置行动策略时必须选择内容模板,内容模板定义具体的发送内容和主题。您可以在发送内容和主题中,通过{{ alert.xxx }}
方式引用模板变量。日志服务发送告警通知时,会将发送内容和主题中的模板变量替换为真实值,例如{{ alert.project }}
替换为告警规则所属的Project名称。
除了直接引用变量外,您还可以通过控制流以及内置函数对变量进行操作和处理。具体的模板语法和内置函数请参见内容模板语法(新版)、内置模板函数。
告警属性
变量 | 说明 | 数据类型 | 取值示例 | 引用示例 |
aliuid | Project所属的阿里云账号ID。 | string | 117918634953**** |
|
alert_instance_id | 告警触发的实例的ID。 | string | ee16a8f435485f3f-5be6b81edc520-3d6**** | 实例ID为 |
alert_id | 告警规则ID,Project内唯一。 | string | alert-12345 | 告警规则ID是 |
alert_name | 告警规则名称。 | string | 测试告警规则 | 告警规则 |
alert_type | 告警类型。
| string | sls_alert | 告警类型是 |
region | 地域。 | string | cn-hangzhou | 告警触发的地域为 |
project | 告警规则所属Project。 | string | my-project |
|
next_eval_interval | 下一次评估间隔,单位为秒。 | int | 300 | 下一次评估时间为 |
alert_time | 本次评估时间。 | int | 1616744734 | 本次评估告警的时间为 |
fire_time | 首次触发时间。 | int | 1616059834 | 告警首次触发时间为 |
status | 告警状态。
| string | firing | 告警状态为 |
resolve_time | 告警恢复时间。
| int | 0 | 告警恢复的时间为 |
severity | 告警严重度。
| int | 10 | 告警严重度为 |
labels | 标签列表。 | map | {"env":"test"} | 告警标签为 |
annotations | 标注列表。 | map | { "title": "告警标题","desc": "告警描述" } | 告警标注为 |
results | 查询参数和中间结果,数组类型。变量取值说明,请参见QueryData结构。 | array | 参见本文末尾附录。 | 第一个查询的开始时间为 |
fire_results | 触发告警的数据,即集合操作后的数据,最多100条。 fire_results变量值超过2KB,并且查询结果字段内容的长度超过1KB时,超出部分会被截断。 | array | 参见本文末尾附录。 | 告警触发时产生的数据为 |
fire_results_count | 触发告警的数据的总条数,可能多于100,例如笛卡尔积操作后的总条数。 | int | 3 | 告警触发时产生的总数据条数为 |
condition | 触发告警的评估表达式。其中,以触发告警的值替换您所配置的变量,并使用中括号([ ])包裹。格式为 | string |
| 告警评估表达式为 |
raw_condition | 原始的评估表达式,即变量未被替换为真实值的原始表达式。格式为 | string |
| 原始评估表达式为 |
policy | 告警策略或者行动策略。变量取值说明,请参见Policy结构。 | map | 参见本文末尾附录。 | 告警策略ID为 |
dashboard | 告警关联的仪表盘名称。 | string | mydashboard | 告警关联的仪表盘名称为 |
alert_url | 告警的详细URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 | 告警URL为 |
query_url | 查询统计中第一个查询页面的URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbn****&queryTimeType=99&startTime=1617175089 | 查询统计中第一个查询页面的URL地址为 |
alert_history_dashboard_url | 告警历史统计报表的URL地址。 | string | https://sls.console.aliyun.com/lognext/project/test-xx/dashboard/internal-alert-analysis | 告警历史统计报表的URL地址为 |
dashboard_url | 告警关联的仪表盘地址。 | string | https://sls.console.aliyun.com/next/project/myproject/dashboard/mydashboard | 告警关联的仪表盘地址为 |
fingerprint | 告警指纹。更多信息,请参见基于告警指纹去重。 | string | 478325709134bc5c | 告警指纹为 |
signin_url | 免登录控制台即可查看告警详情。更多信息,请参见免登录查看告警详情。 | string | https://sls.console.aliyun.com/console/AlertAjax/slsSignIn.json?token=xxxx |
|
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变量值超过2KB,并且查询结果字段内容的长度超过1KB时,超出部分会被截断。 | 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=KiB8IHNlbGVjdCBjb3VudCgxKSBhcy*******&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 |
常见问题
附录
results
[{ "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": "" }]
fire_results
[{ "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }, { "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }]
policy
{ "alert_policy_id": "sls.test-alert", "action_policy_id": "sls.test-action", "repeat_interval": "5m0s" }