tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

告警通知变量

PDF
聚焦模式
字号
最后更新时间: 2025-11-19 19:39:42
在告警策略中配置通知内容自定义接口回调配置时,可使用告警通知变量来自定义告警通知内容,使得收到的告警通知更加清晰准确的描述告警原因。

快速开始

配置告警策略 中,为通知内容填写如下配置信息:
详细日志:
{{.QueryLog[0][0]}}
配置完成后如下图所示:
收到告警通知时,通知内容将自动替换为下值,代表触发告警时最近的一条详细日志:
详细日志:
{"content":{"body_bytes_sent":"33352","http_referer":"-","http_user_agent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36","remote_addr":"201.80.83.199","remote_user":"-","request_method":"GET","request_uri":"/content/themes/test-com/images/header_about.jpg","status":"404","time_local":"01/Nov/2018:01:16:31"},"fileName":"/root/testLog/nginx.log","pkg_id":"285A243662909DE3-70A","source":"172.17.0.2","time":1653831150008,"topicId":"a54de372-ffe0-49ae-a12e-c340bb2b03f2"}

通知变量

变量
含义
变量值示例
说明
{{.UIN}}
账号 ID
100007xxx827
-
{{.Nickname}}
账号昵称
xx企业
-
{{.Region}}
地域
广州
-
{{.Alarm}}
告警策略名称
Nginx 错误日志过多
-
{{.AlarmID}}
告警策略 ID
notice-3abd7ad6-15b7-4168-xxxx-52e5b961a561
-
{{.ExecuteQuery}}
执行语句
["status:>=400 | select count(*) as errorLogCount","status:>=400 | select count(*) as errorLogCount,request_uri group by request_uri order by count(*) desc"]
数组结构,{{.ExecuteQuery[0]}}代表第1个执行语句的详细日志,{{.ExecuteQuery[1]}}代表第2个执行语句的详细日志,以此类推
{{.Condition}}
触发条件
$1.errorLogCount > 1
-
{{.HappenThreshold}}
告警所需的触发条件持续满足次数
1
-
{{.AlertThreshold}}
告警间隔时间
15
单位:分钟
{{.Topic}}
日志主题名称
nginxLog
-
{{.TopicId}}
日志主题 ID
a54de372-ffe0-49ae-xxxx-c340bb2b03f2
-
{{.StartTime}}
第一次告警触发时间
2022-05-28 18:56:37
时区:Asia/Shanghai
{{.StartTimeUnix}}
第一次告警触发时间戳
1653735397099
毫秒级 UNIX 时间戳
{{.NotifyTime}}
本次告警通知时间
2022-05-28 19:41:37
时区:Asia/Shanghai
{{.NotifyTimeUnix}}
本次告警通知时间戳
1653738097099
毫秒级 UNIX 时间戳
{{.NotifyType}}
告警通知类型
1
1代表告警通知,2代表恢复通知
{{.ConsecutiveAlertNums}}
连续告警次数
2
-
{{.Duration}}
告警持续时间
0
单位:分钟
{{.TriggerParams}}
告警触发时参数
$1.errorLogCount=5;
-
{{.ConditionGroup}}
告警分组触发时对应的分组信息
{"$1.AppName":"userManageService"}
告警策略启用分组触发功能时才具备该变量
{{.DetailUrl}}
告警详情页面链接
https://alarm.cls.tencentcs.com/MDv2xxJh
无需登录账号
{{.QueryUrl}}
第一个执行语句的检索分析链接
https://alarm.cls.tencentcs.com/T0pkxxMA
-
{{.Message}}
通知内容
-
特指告警策略配置中填写的“通知内容”
{{.QueryResult}}
执行语句执行结果
详见 {{.QueryResult}} 说明
-
{{.QueryLog}}
执行语句中检索条件匹配到的详细日志
详见 {{.QueryLog}} 说明
-
{{.AnalysisResult}}
多维分析结果
详见 {{.AnalysisResult}} 说明
仅告警触发时具备该变量,告警恢复时无该变量
相关说明如下:

{{.QueryResult}}

含义:执行语句执行结果。
说明:数组结构,{{.QueryResult[0]}} 代表第1个执行语句的执行结果,{{.QueryResult[1]}} 代表第2个执行语句的执行结果,以此类推。
变量值示例: 假设告警策略存在两条执行语句:
第1个执行语句:status:>=400 | select count(*) as errorLogCount
第2个执行语句:status:>=400 | select count(*) as errorLogCount,request_uri group by request_uri order by count(*) desc
则变量值为:
[
[{
"errorLogCount": 7
}],
[{
"errorLogCount": 3,
"request_uri": "/apple-touch-icon-144x144.png"
}, {
"errorLogCount": 3,
"request_uri": "/feed"
}, {
"errorLogCount": 1,
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html"
}]
]

{{.QueryLog}}

含义:执行语句中检索条件匹配到的详细日志(不包含 SQL 中的过滤条件)。
说明:数组结构,{{.QueryLog[0]}} 代表第1个执行语句的详细日志,{{.QueryLog[1]}} 代表第2个执行语句的详细日志,以此类推。每个执行语句最多包含最近的10条详细日志。
变量值示例
[
[{
"content": {
"__TAG__": {
"pod": "nginxPod",
"cluster": "testCluster"
},
"body_bytes_sent": "32847",
"http_referer": "-",
"http_user_agent": "Opera/9.80 (Windows NT 6.1; U; en-US) Presto/2.7.62 Version/11.01",
"remote_addr": "105.86.148.186",
"remote_user": "-",
"request_method": "GET",
"request_uri": "/apple-touch-icon-144x144.png",
"status": "404",
"time_local": "01/Nov/2018:00:55:14"
},
"fileName": "/root/testLog/nginx.log",
"pkg_id": "285A243662909DE3-5CD",
"source": "172.17.0.2",
"time": 1653739000013,
"topicId": "a54de372-ffe0-49ae-a12e-c340bb2b03f2"
}, {
"content": {
"__TAG__": {
"pod": "nginxPod",
"cluster": "testCluster"
},
"body_bytes_sent": "33496",
"http_referer": "-",
"http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36",
"remote_addr": "222.18.168.242",
"remote_user": "-",
"request_method": "GET",
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html",
"status": "404",
"time_local": "01/Nov/2018:00:54:37"
},
"fileName": "/root/testLog/nginx.log",
"pkg_id": "285A243662909DE3-5C8",
"source": "172.17.0.2",
"time": 1653738975008,
"topicId": "a54de372-ffe0-49ae-a12e-c340bb2b03f2"
}]
]

{{.AnalysisResult}}

含义:多维分析结果。
说明:对象结构,第一层级对象分别对应每个多维分析的结果。一级对象的 key 为多维分析的名称,value 为该多维分析的结果。仅告警触发(即{{.NotifyType}}=1)时具备该变量,告警恢复(即{{.NotifyType}}=2)时无该变量。
变量值示例 假设告警策略存在3个多维分析:
名称:Top URL
类型:字段TOP5及占比统计
字段:request_uri

名称:错误日志URL分布类型:自定义检索分析
分析语句:status:>=400 | select count() as errorLogCount,request_uri group by request_uri order by count() desc

则变量值为:
{ "Top URL": [{ "count": 77, "ratio": 0.45294117647058824, "value": "/" }, { "count": 20, "ratio": 0.11764705882352941, "value": "/favicon.ico" }, { "count": 7, "ratio": 0.041176470588235294, "value": "/blog/feed" }, { "count": 5, "ratio": 0.029411764705882353, "value": "/test-tile-service" }, { "count": 3, "ratio": 0.01764705882352941, "value": "/android-chrome-192x192.png" }], "详细错误日志": [{ "content": { "TAG": { "pod": "nginxPod", "cluster": "testCluster" }, "body_bytes_sent": "32847", "http_referer": "-", "http_user_agent": "Opera/9.80 (Windows NT 6.1; U; en-US) Presto/2.7.62 Version/11.01", "remote_addr": "105.86.148.186", "remote_user": "-", "request_method": "GET", "request_uri": "/apple-touch-icon-144x144.png", "status": "404", "time_local": "01/Nov/2018:00:55:14" }, "fileName": "/root/testLog/nginx.log", "pkg_id": "285A243662909DE3-5CD", "source": "172.17.0.2", "time": 1653739000013, "topicId": "a54de372-ffe0-49ae-a12e-c340bb2b03f2" }, { "content": { "TAG": { "pod": "nginxPod", "cluster": "testCluster" }, "body_bytes_sent": "33496", "http_referer": "-", "http_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36", "remote_addr": "222.18.168.242", "remote_user": "-", "request_method": "GET", "request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html", "status": "404", "time_local": "01/Nov/2018:00:54:37" }, "fileName": "/root/testLog/nginx.log", "pkg_id": "285A243662909DE3-5C8", "source": "172.17.0.2", "time": 1653738975008, "topicId": "a54de372-ffe0-49ae-a12e-c340bb2b03f2" }], "错误日志URL分布": [{ "errorLogCount": 3, "request_uri": "/apple-touch-icon-144x144.png" }, { "errorLogCount": 3, "request_uri": "/feed" }, { "errorLogCount": 1, "request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html" }] }


变量语法

变量语法类似 Go Template 语法,可对告警通知变量进行提取和格式化处理,以更加清晰的呈现在告警通知内容中。所有变量及变量语法均位于{{ }}中,外部的文本不会进行处理。

变量提取

语法格式
{{.variable[x]}}{{index .variable x}}
{{.variable.childNodeName}}{{index .variable "childNodeName"}}
语法说明
变量为数组时,使用 {{.variable[x]}} 按数组下标提取对应的数组元素,其中 x 为大于等于0的整数,等价于 {{index .variable x}}
变量为对象时,使用 {{.variable.childNodeKey}} 按子级对象名称(key)提取对应的子级对象值(value),等价于 {{index .variable "childNodeName"}}
注意:
子级对象名称包含空格时,请使用 {{index .variable "childNodeName"}}形式的语法,例如 {{index .AnalysisResult "Top URL"}}
使用示例{{.QueryResult}} 变量值为:
[
[{
"errorLogCount": 7 //提取该值
}],
[{
"errorLogCount": 3,
"request_uri": "/apple-touch-icon-144x144.png"
}, {
"errorLogCount": 3,
"request_uri": "/feed"
}, {
"errorLogCount": 1,
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html"
}]
]
通过以下表达式获取第一个数组中的 errorLogCount 的值:
{{.QueryResult[0][0].errorLogCount}}
返回结果:
7

循环遍历

语法格式
{{range .variable}}
自定义内容{{.childNode1}}自定义内容{{.childNode2}}...
{{end}}
{{range $key,$value := .variable}}
自定义内容{{$key}}自定义内容{{$value}}...
{{end}}
语法说明
变量为数组或包含多个子级对象的对象时,可使用该语法将其中的每个元素/对象按指定格式展示出来。
使用示例
{{.QueryResult}} 变量值为:
[
[{
"errorLogCount": 7
}],
[{
"errorLogCount": 3,
"request_uri": "/apple-touch-icon-144x144.png"
}, {
"errorLogCount": 3,
"request_uri": "/feed"
}, {
"errorLogCount": 1,
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html"
}]
]
通过以下表达式分别展示第二个数组中每个 request_uri 对应的 errorLogCount:
{{range .QueryResult[1]}}
* {{.request_uri}}错误日志数:{{.errorLogCount}}
{{end}}
返回结果:

* /apple-touch-icon-144x144.png错误日志数:3

* /feed错误日志数:3

* /opt/node_apps/test-v5/app/themes/basic/public/static/404.html错误日志数:1



条件判断

语法格式
{{if boolen}}
xxx
{{end}}
{{if boolen}}
xxx
{{else}}
xxx
{{end}}
{{if boolen}}
xxx
{{else if boolen}}
xxx
{{end}}
语法说明
根据条件判断结果分别执行对应的表达式,条件判断支持使用 and or not 进行逻辑运算,支持比较大小值。
eq arg1 arg2 : arg1 == arg2时为true
ne arg1 arg2 : arg1 != arg2时为true
lt arg1 arg2 : arg1 < arg2时为true
le arg1 arg2 : arg1 <= arg2时为true
gt arg1 arg2 : arg1 > arg2时为true
ge arg1 arg2 : arg1 >= arg2时为true
使用示例
{{.QueryResult}} 变量值为:
[
[{
"errorLogCount": 7
}],
[{
"errorLogCount": 3,
"request_uri": "/apple-touch-icon-144x144.png"
}, {
"errorLogCount": 3,
"request_uri": "/feed"
}, {
"errorLogCount": 1,
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html"
}]
]
通过以下表达式分别展示第二个数组中 errorLogCount 大于等于2且小于等于100的 request_uri 及对应的 errorLogCount:
{{range .QueryResult[1]}}
{{if and (ge .errorLogCount 2) (le .errorLogCount 100)}}
* {{.request_uri}}错误日志数:{{.errorLogCount}}
{{end}}
{{end}}
返回结果:


* /apple-touch-icon-144x144.png错误日志数:3



* /feed错误日志数:3




使用 if 还可以判断字段值是否存在,字段值为空白字符串或不存在时,相当于 false。例如:
{{if .QueryLog[0][0].apple}}
apple exist, value is : {{.QueryLog[0][0].apple}}
{{else}}
apple is not exist
{{end}}

移除空白符号

语法格式
{{- xxx}}{{xxx -}}
语法说明
变量语法在执行过程中会保留语法本身带来的空格、缩进和换行等空白符号,例如循环迭代和条件判断使用示例中的返回结果中包含较多空白行,影响展示效果,此时可在{{ }}的头部或尾部使用-移除其前面或后面的空白符号。
使用示例
沿用条件判断中的示例,表达式修改为:
{{- range .QueryResult[1]}}
{{- if and (ge .errorLogCount 2) (le .errorLogCount 100)}}
* {{.request_uri}}错误日志数:{{.errorLogCount}}
{{- end}}
{{- end}}
返回结果:
* /apple-touch-icon-144x144.png错误日志数:3
* /feed错误日志数:3

变量函数

转义特殊字符

语法格式
{{escape .variable}}
语法说明
告警变量中很多变量包含特殊符号,如果直接将变量拼接在 JSON 字符串中进行自定义接口回调,可能会导致 JSON 格式错误,导致回调失败。此时可对原始变量值进行转义,再拼接至 JSON 字符串中。
使用示例
{{.ExecuteQuery[0]}} 的变量值为 status:>=400 | select count(*) as "错误日志数" 如果不使用转义,自定义接口回调配置中请求内容为:
{
"Query":"{{.ExecuteQuery[0]}}"
}
返回结果如下(不是一个合法的 JSON):
{
"Query":"status:>=400 | select count(*) as "错误日志数""
}
此时可使用转义,将自定义接口回调配置中请求内容修改为:
{
"Query":"{{escape .ExecuteQuery[0]}}"
}
返回结果如下(符合 JSON 语法要求):
{
"Query":"status:>=400 | select count(*) as \\"错误日志数\\""
}


字符串截取

按长度截取

语法格式
{{substr .variable start}}{{substr .variable start length}}
语法说明
按指定起始位置和长度(可选)对字符串进行截取。
使用示例
{{.QueryLog[0][0].fileName}} 变量值为:
/root/testLog/nginx.log
通过以下表达式获取第6个字符开始、总长7个字符的字符串:
{{substr .QueryLog[0][0].fileName 6 7 }}
返回结果:
testLog

按首尾字符截取

语法格式
{{extract .variable "startstring" ["endstring"]}}
语法说明
按指定起始字符和结束字符(可选)对字符串进行截取。
使用示例
{{.QueryLog[0][0].fileName}}变量值为:
/root/testLog/nginx.log
通过以下表达式获取 /root//nginx 之间的字符串:
{{extract .QueryLog[0][0].fileName "/root/" "/nginx"}}
返回结果:
testLog

是否包含指定字符串

语法格式
{{containstr .variable "searchstring"}}
语法说明
变量值中是否包含指定的字符串,判断结果可用于条件判断语法中。
使用示例
{{.QueryLog[0][0].fileName}} 变量值为:
/root/testLog/nginx.log
通过以下表达式获取 /root//nginx 之间的字符串:
{{if containstr .QueryLog[0][0].fileName "test"}}
测试日志
{{else}}
非测试日志
{{end}}
返回结果:
测试日志

UNIX 时间戳转换

语法格式
{{fromUnixTime .variable}}{{fromUnixTime .variable "timezone"}}
语法说明
将 UNIX 时间戳(支持毫秒及秒级时间戳)转换为可读的日期时间。其中时区可选,默认为 Asia/Shanghai。
使用示例
{{.QueryLog[0][0].time}} 变量值为:
1653893435008
通过以下表达式分别获区不同时区下的日期时间:
{{fromUnixTime .QueryLog[0][0].time}}
{{fromUnixTime .QueryLog[0][0].time "Asia/Shanghai"}}
{{fromUnixTime .QueryLog[0][0].time "Asia/Tokyo"}}
返回结果:

2022-05-30 14:50:35.008 +0800 CST
2022-05-30 14:50:35.008 +0800 CST
2022-05-30 15:50:35.008 +0900 JST


字符串拼接

语法格式
{{concat .variable1 .variable2 ...}}
语法说明
将指定的多个变量或字符串拼接在一起
使用示例
将地域及告警策略名称拼接在一起
{{concat .Region .Alarm}}
返回结果:
广州 alarmTest

base64/base64url/url 编码及解码

语法格式
{{base64_encode .variable}}
{{base64_decode .variable}}
{{base64url_encode .variable}}
{{base64url_decode .variable}}
{{url_encode .variable}}
{{url_decode .variable}}
语法说明
对指定的变量或字符串进行编码(encode)或解码(decode),其中 base64url 在编解码过程中不会去除或补充尾部的*"="*
使用示例
{{base64_encode "test测试"}}
{{base64_decode "dGVzdOa1i+ivlQ=="}}
{{base64url_encode "test测试"}}
{{base64url_decode "dGVzdOa1i-ivlQ=="}}
{{url_encode "https://console.tencentcloud.com:80/cls?region=ap-chongqing"}}
{{url_decode "https%3A%2F%2Fconsole.cloud.tencent.com%3A80%2Fcls%3Fregion%3Dap-chongqing"}}
返回结果:
dGVzdOa1i+ivlQ==
test测试
dGVzdOa1i-ivlQ==
test测试
https%3A%2F%2Fconsole.cloud.tencent.com%3A80%2Fcls%3Fregion%3Dap-chongqing
https://console.tencentcloud.com:80/cls?region=ap-chongqing

md5/sha1/sha256/sha512 加密

语法格式
{{md5 .variable}}
{{md5 .variable | base64_encode}}
{{md5 .variable | base64url_encode}}
{{sha1 .variable}}
{{sha1 .variable | base64_encode}}
{{sha1 .variable | base64url_encode}}
{{sha256 .variable}}
{{sha256 .variable | base64_encode}}
{{sha256 .variable | base64url_encode}}
{{sha512 .variable}}
{{sha512 .variable | base64_encode}}
{{sha512 .variable | base64url_encode}}
语法说明
对指定的变量或字符串按照特定的加密算法进行加密,默认返回结果编码格式为16进制字符串,可按需修改为 base64 或 base64url 编码格式。
使用示例
{{md5 "test"}}
{{md5 "test" | base64_encode}}
{{md5 "test" | base64url_encode}}
{{sha1 "test"}}
{{sha1 "test" | base64_encode}}
{{sha1 "test" | base64url_encode}}
{{sha256 "test"}}
{{sha256 "test" | base64_encode}}
{{sha256 "test" | base64url_encode}}
{{sha512 "test"}}
{{sha512 "test" | base64_encode}}
{{sha512 "test" | base64url_encode}}
返回结果:
098F6BCD4621D373CADE4E832627B4F6
CY9rzUYh03PK3k6DJie09g==
CY9rzUYh03PK3k6DJie09g==
A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
qUqP5cyxm6YcTAhz05Hph5gvu9M=
qUqP5cyxm6YcTAhz05Hph5gvu9M=
9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08
n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=
n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg=
EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF
7iaw3Ur350mqGo7jwQrpkj9hiYB3Lkc/iBml1JQODbJ6wYX4oOHV+E+IvIh/1nsUNzLDBMxfqa2Ob1f1ACio/w==
7iaw3Ur350mqGo7jwQrpkj9hiYB3Lkc_iBml1JQODbJ6wYX4oOHV-E-IvIh_1nsUNzLDBMxfqa2Ob1f1ACio_w==

hmac_md5/hmac_sha1/hmac_sha256/hmac_sha512 加密

语法格式
{{hmac_md5 .variable "Secretkey"}}
{{hmac_md5 .variable "Secretkey" | base64_encode}}
{{hmac_md5 .variable "Secretkey" | base64url_encode}}
{{hmac_sha1 .variable "Secretkey"}}
{{hmac_sha1 .variable "Secretkey" | base64_encode}}
{{hmac_sha1 .variable "Secretkey" | base64url_encode}}
{{hmac_sha256 .variable "Secretkey"}}
{{hmac_sha256 .variable "Secretkey" | base64_encode}}
{{hmac_sha256 .variable "Secretkey" | base64url_encode}}
{{hmac_sha512 .variable "Secretkey"}}
{{hmac_sha512 .variable "Secretkey" | base64_encode}}
{{hmac_sha512 .variable "Secretkey" | base64url_encode}}
语法说明
对指定的变量或字符串按照特定的加密算法进行加密,默认返回结果编码格式为16进制字符串,可按需修改为 base64 或 base64url 编码格式。其中 Secretkey 为 hmac 加密算法中的密钥,可按需进行修改。
使用示例
{{hmac_md5 "test" "Secretkey"}}
{{hmac_md5 "test" "Secretkey" | base64_encode}}
{{hmac_md5 "test" "Secretkey" | base64url_encode}}
{{hmac_sha1 "test" "Secretkey"}}
{{hmac_sha1 "test" "Secretkey" | base64_encode}}
{{hmac_sha1 "test" "Secretkey" | base64url_encode}}
{{hmac_sha256 "test" "Secretkey"}}
{{hmac_sha256 "test" "Secretkey" | base64_encode}}
{{hmac_sha256 "test" "Secretkey" | base64url_encode}}
{{hmac_sha512 "test" "Secretkey"}}
{{hmac_sha512 "test" "Secretkey" | base64_encode}}
{{hmac_sha512 "test" "Secretkey" | base64url_encode}}
返回结果:
E7B946D930658699AA668601E33E87CE
57lG2TBlhpmqZoYB4z6Hzg==
57lG2TBlhpmqZoYB4z6Hzg==
2AB64F124D932F5033EAC7AF392AC5CC4D52F503
KrZPEk2TL1Az6sevOSrFzE1S9QM=
KrZPEk2TL1Az6sevOSrFzE1S9QM=
FC49EBC05209B1359773D87C216BA85BCE0163FDE459EA37AB603EC9D8445D23
/EnrwFIJsTWXc9h8IWuoW84BY/3kWeo3q2A+ydhEXSM=
_EnrwFIJsTWXc9h8IWuoW84BY_3kWeo3q2A-ydhEXSM=
D18DF3D943F74769A8B66E43D7EF03639BB6B8B8A2EBC9976170DC58EEE58BE98478F3183E4B5AA3481DE12026AAE3843F8213B39D639EAC6EE93734EA667BC5
0Y3z2UP3R2motm5D1+8DY5u2uLii68mXYXDcWO7li+mEePMYPktao0gd4SAmquOEP4ITs51jnqxu6Tc06mZ7xQ==
0Y3z2UP3R2motm5D1-8DY5u2uLii68mXYXDcWO7li-mEePMYPktao0gd4SAmquOEP4ITs51jnqxu6Tc06mZ7xQ==

参考案例

案例1:在告警通知中展示最近一条详细日志

需求场景: 将符合执行语句检索条件的最近一条详细日志添加至告警通知中,以 key:value 的形式展示,每行一个 key,不包含 CLS 预置字段和元数据字段。
通知内容配置
{{range $key,$value := .QueryLog[0][0].content}}
{{if not (containstr $key "__TAG__")}}
{{- $key}}:{{$value}}
{{- end}}
{{- end}}
其中 .QueryLog[0][0] 代表符合告警策略第一条执行语句检索条件的最近一条详细日志,其值为:
{
"content": {
"__TAG__": {
"a": "b12fgfe",
"c": "fgerhcdhgj"
},
"body_bytes_sent": "33704",
"http_referer": "-",
"http_user_agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36",
"remote_addr": "247.0.249.191",
"remote_user": "-",
"request_method": "GET",
"request_uri": "/products/hadoop)",
"status": "404",
"time_local": "01/Nov/2018:07:54:08"
},
"fileName": "/root/testLog/nginx.log",
"pkg_id": "285A243662909DE3-210B",
"source": "172.17.0.2",
"time": 1653908859008,
"topicId": "a54de372-ffe0-49ae-a12e-c340bb2b03f2"
}
告警通知内容
remote_addr:247.0.249.191
time_local:01/Nov/2018:07:54:08
http_user_agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.3319.102 Safari/537.36
remote_user:-
http_referer:-
body_bytes_sent:33704
request_method:GET
request_uri:/products/hadoop)
status:404

案例2:告警通知中展示执行语句执行结果

需求场景: 将执行语句执行结果中符合触发条件的部分添加至告警通知中,以列表的形式展示。 告警策略执行语句为:status:>=400 | select count(*) as errorLogCount,request_uri group by request_uri order by count(*) desc 触发条件为:$1.errorLogCount > 10
通知内容配置
{{range .QueryResult[0]}}
{{- if gt .errorLogCount 10}}
{{.request_uri}}错误日志数:{{.errorLogCount}}
{{- end}}
{{- end}}
其中 .QueryResult[0] 代表告警策略第一条执行语句的执行结果,其值为:
[{
"errorLogCount": 161,
"request_uri": "/apple-touch-icon-144x144.png"
}, {
"errorLogCount": 86,
"request_uri": "/opt/node_apps/test-v5/app/themes/basic/public/static/404.html"
}, {
"errorLogCount": 33,
"request_uri": "/feed"
}, {
"errorLogCount": 26,
"request_uri": "/wp-login.php"
}, {
"errorLogCount": 10,
"request_uri": "/safari-pinned-tab.svg"
}, {
"errorLogCount": 7,
"request_uri": "/mstile-144x144.png"
}, {
"errorLogCount": 4,
"request_uri": "/atom.xml"
}, {
"errorLogCount": 3,
"request_uri": "/content/plugins/prettify-gc-syntax-highlighter/launch.js?ver=3.5.2?ver=3.5.2"
}]
告警通知内容
/apple-touch-icon-144x144.png错误日志数:161
/opt/node_apps/elastic-v5/app/themes/basic/public/static/404.html错误日志数:86
/feed错误日志数:33
/wp-login.php错误日志数:26


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈