内容模板变量说明(新版)

本文介绍新版内容模板的变量以及引用方式。

引用方式

重要

引用变量时,变量名称必须完全匹配。对于不存在的变量或者不合法的引用,系统默认替换为空字符串。如果引用的值为对象类型,则会转换为JSON字符串。模板的变量名称规则:大小写字母、数字、下划线,且不以数字开头。

  • 如果模板变量名称符合标准规则,则可以通过{{alert.xxx}}获取变量。

  • 如果模板变量名称不符合标准规则,例如变量名称为__tag__:__namespace__,获取变量的方法为{{alert.annotations["__tag__:__namespace__"] }}

配置行动策略时必须选择内容模板,内容模板定义具体的发送内容和主题。您可以在发送内容主题中,通过{{ 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

告警类型。

  • sls_alert:由告警监控规则触发的告警。

  • sls_pub:来自于开放告警的告警。

  • sls_ml:由智能巡检触发的告警。

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

告警状态。

  • firing:触发告警。

  • resolved:恢复通知。

string

firing

告警状态为{{ alert.status }},格式化显示为{{ alert.status | format_status }}

resolve_time

告警恢复时间。

  • 如果告警状态是firing,取值为0。

  • 如果告警状态是resolved,取值为具体恢复时间。

int

0

告警恢复的时间为{{ alert.resolve_time }},格式化显示为{{ alert.resolve_time | format_date }}

severity

告警严重度。

  • 10:严重

  • 8:高

  • 6:中

  • 4:低

  • 2:仅报告

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变量值超过2KB,并且查询结果字段内容的长度超过1KB时,超出部分会被截断。

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=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbn****&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

存储类型。

  • log:日志。

  • metric:时序数据。

  • meta:资源数据。

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

[{
    "host": "example.com",
    "slbid": "slb-02",
    "status": "200"
}, {
    "host": "example.com",
    "slbid": "slb-01",
    "status": "200"
}]

raw_results_count

实际查询数据的总条数,可能多于100。

int

20

fire_result

告警触发内容中的第一条数据。告警触发结果集可能包含多条数据,该参数只返回第一条数据。

map

{
    "host": "example.com",
    "slbid": "slb-02",
    "status": "200"
}

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"
    }