You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
告警通知内容模板
内容函数
复制全文
下载 pdf
内容函数
日志服务提供一系列函数用于处理告警通知内容,您可以通过函数对数据和变量进行各种转换操作与处理。本文档介绍日志服务提供的内置函数语法、使用方式及示例。​
控制函数​
​
函数​
语法​
示例​
until​
until 函数用于生成从 0 到 n 的 Integer 类型数组,步长默认为 1,类似 python 中的 range 函数。例如 until(3) 返回数组 []int{0,1,2}。​
支持配合 for 循环使用。​
语法格式如下:​
​
until(n)​
​
其中,n 表示数组长度,Integer 类型。​
  • 函数示例​
  • ​
    {%for i in until(3)%}​
    {{i}}​
    {%endfor%}​
    ​
  • 处理结果​
  • ​
    0​
    1​
    2​
    ​
untilStep​
untilStep 函数用于生成从 start 到 stop (不包含 stop)且步长为 step 的 Integer 类型数组。​
语法格式如下:​
​
untilStep(start,stop,step)​
​
其中:​
  • Start:Integer 类型,表示数组左边界。​
  • Stop:Integer 类型,表示数组右边界。​
  • Step:Integer 类型,表示数组步长。​
  • 函数示例​
  • ​
    {%for i in untilStep(0,10,2)%}​
    {{i}}​
    {%endfor%}​
    ​
  • 处理结果​
  • ​
    0 2 4 6 8​
    ​
​
UUID 函数​
​
函数​
语法​
示例​
uuidv4​
uuidv4 函数用于通过 UUID v4 算法生成一个随机字符串。​
语法格式如下:​
​
{{uuidv4()}}​
​
  • 函数示例​
  • ​
    {{uuidv4()}}​
    ​
  • 处理结果​
  • ​
    2b1ac53a-413c-428a-b35d-48c62a12d86d​
    ​
​
URL 函数​
​
函数​
语法​
示例​
urlParse​
urlParse 函数用于从 URL 中提取指定字段,处理结果为字符串格式。​
语法格式如下:​
​
{{urlParse(url)}}​
​
其中,url 表示待提取字段的 URL 字符串。 ​
​
将一串 URL 提取为以下格式的字符串。​
​
{​
scheme: 'http'​
host: 'server.com:8080'​
path: '/api'​
query: 'list=false'​
opaque: nil​
fragment: 'anchor'​
userinfo: 'admin:secret'​
}​
​
  • 函数示例​
  • ​
    {{ urlParse("http://admin:secret@server.com:8080/api?list=false#anchor")}} \n toJson(urlParse("http://admin:secret@server.com:8080/api?list=false#anchor"))​
    ​
  • 处理结果​
  • ​
    {%with t=urlParse("http://admin:secret@server.com:8080/api?list=false#anchor")%}​
    {{t.scheme}}​
    {{t.host}}​
    {{t.path}}​
    {{t.query}}​
    {{t.opaque}}​
    {{t.fragment}}​
    {%endwith%}​
    ​
​
urlJoin​
urlJoin 函数用于将 URL 对象转换为字符串形式。​
语法格式如下:​
​
{{urlJoin(urlObj)}}​
​
其中,urlObj 表示包含 URL 信息的对象。 ​
  • 函数示例​
  • ​
    {{urlJoin(dict("fragment","fragment","host","host:80","path","/path","query","query","scheme","http"))}}​
    ​
  • 处理结果​
  • ​
    http://host:80/path?query#fragment​
    ​
​
数学函数​
​
函数名称​
语法说明​
示例​
max​
max 函数用于统计所有参数中的最大值。​
语法格式如下:​
​
max(value=a,b,c,d,e...)​
​
  • 函数示例​
  • ​
    {{max(1,2,3,4)}}​
    ​
  • 处理结果​
  • ​
    4​
    ​
min​
min 函数用于统计所有参数中的最小值。​
语法格式如下:​
​
min(value=a,b,c,d,e...)​
​
  • 函数示例​
  • ​
    {{min(3,5,3,1)}}​
    ​
  • 处理结果​
  • ​
    1​
    ​
ceil​
ceil 函数用于对 data 向上取整。​
语法格式如下:​
​
ceil(value=data)​
​
  • 函数示例​
  • ​
    {{ceil(1.1)}}​
    ​
  • 处理结果​
  • ​
    2.000000​
    ​
floor​
floor 函数用于对 data 向下取整。​
语法格式如下:​
​
floor(value=data)​
​
  • 函数示例​
  • ​
    {{floor(1.1)}}​
    ​
  • 处理结果​
  • ​
    1.000000​
    ​
add​
add 函数用于执行加法运算,即将输入的所有参数都当做 Integer 类型进行相加。​
语法格式如下:​
​
add(value=a,b,c,d...)​
​
  • 函数示例​
  • ​
    add(1,2,3)​
    ​
  • 处理结果​
  • ​
    6​
    ​
sub​
sub 函数用于执行减法运算,即输出 a-b,其中 a、b 均为 Integer 类型。​
语法格式如下:​
​
sub(a,b)​
​
  • 函数示例​
  • ​
    sub(10,1)​
    ​
  • 处理结果​
  • ​
    9​
    ​
div​
div 函数用于执行除法运算,即 a/b。​
语法格式如下:​
​
div(a,b)​
​
  • 函数示例​
  • ​
    div(10,2)​
    ​
  • 处理结果​
  • ​
    5​
    ​
mod​
mod 函数用于取模,即 a%b。​
语法格式如下:​
​
mod(a,b)​
​
  • 函数示例​
  • ​
    mod(10,3)​
    ​
  • 处理结果​
  • ​
    1​
    ​
mul​
mul 函数用于执行乘法运算,即所有输入参数的乘积,结果 Integer 类型。​
语法格式如下:​
​
mul(value=a,b,c,...)​
​
  • 函数示例​
  • ​
    mul(1,2,3)​
    ​
  • 处理结果​
  • ​
    6​
    ​
round​
round 函数用于对数值进行四舍五入。输出四舍五入后的数值,保留 6 位小数。​
语法格式如下:​
​
round(data,i,j)​
​
其中:​
  • data:float 类型,表示原数值。​
  • i:Integer 类型,表示第几位数进行四舍五入。正整数表示小数点的位数,负整数表示小数点前的位数。​
  • j:float 类型,取值范围为(0,1),表示 data 中的小数部分大于 j 才进位,否则舍去。​
  • 函数示例​
  • ​
    {{round(1.1,0,0.5)}}​
    ​
  • 处理结果​
  • ​
    1.000000​
    ​
​
字符串函数​
​
函数​
说明​
使用示例​
trim​
trim 函数用于删除原始字符串开头和末尾的空字符。​
语法格式如下:​
​
trim(value)​
​
  • 函数示例​
  • ​
    {{trim(" a ")}}​
    ​
  • 处理结果​
  • ​
    a​
    ​
​
upper​
upper 函数用于将原始字符串中所有字符转换为大写形式。​
语法格式如下:​
​
upper(value)​
​
  • 函数示例​
  • ​
    {{upper("hello")}}​
    ​
  • 处理结果​
  • ​
    HELLO​
    ​
​
lower​
lower 函数用于将原始字符串中所有字符转换为小写形式。​
语法格式如下:​
​
lower(value)​
​
  • 函数示例​
  • ​
    {{lower("HELLO")}}​
    ​
  • 处理结果​
  • ​
    hello​
    ​
​
title​
title 函数用于将原始字符串进行标题化处理,即每个单词的首字母大写,其余字母小写。​
语法格式如下:​
​
title(value)​
​
  • 函数示例​
  • ​
    {{title("hello world")}}​
    ​
  • 处理结果​
  • ​
    Hello World​
    ​
​
contains​
contains 函数用于判断指定字符串 originstr 是否包含子字符串 substr。 如果包含指定子串,则输出 True,否则输出 False。​
语法格式如下:​
​
contains(substr,orignstr)​
​
其中:​
  • orignstr:字符串类型,表示待判断的字符串。​
  • substr:字符串类型,表示子字符串。​
  • 函数示例​
  • ​
    {{contains("hel","hello")}}​
    ​
  • 处理结果​
  • ​
    True​
    ​
​
quote​
quote 函数用于对字符串的引用,即使用半角双引号("")将指定字符串包裹起来。​
语法格式如下:​
​
quote (value)​
​
  • 函数示例​
  • ​
    {{quote("hello\"")}}​
    ​
  • 处理结果​
  • ​
    "hello""​
    ​
replace​
replace 函数用于将指定字符串 originstr 中的某个子字符串 oldstr 替换为另一个子字符串 newstr。输出格式为字符串。​
语法格式如下:​
​
replace(oldstr,newstr,originstr)​
​
其中:​
  • originstr:字符串类型,表示原始字符串。​
  • oldstr:字符串类型,表示需要替换的原始子字符串。​
  • newstr:字符串类型,表示替换的新子字符串。​
  • 函数示例​
  • ​
    {{replace("ll","aa","hello")}}​
    ​
  • 处理结果​
  • ​
    heaao​
    ​
​
repeat​
repeat 函数用于生成重复的序列,即将字符串重复 n 次。输出结果为字符串格式。​
语法格式如下:​
​
repeat(n,str)​
​
其中:​
  • n:Integer 类型,表示重复次数。​
  • str:字符串类型,表示原始字符串。​
  • 函数示例​
  • ​
    {{repeat(3,"hello")}}​
    ​
  • 处理结果​
  • ​
    hellohellohello​
    ​
​
substr​
substr 函数用于截取字符串 str 中下标为 [i,j) 的子字符串。 输出结果为截取的关键词,字符串格式。​
语法格式如下:​
​
substr(i,j,str)​
​
其中:​
  • i:Integer 类型,子字符串左边界,下标从零开始。 ​
  • j:Integer 类型,子字符串右边界,不包含 j。 ​
  • str:字符串类型,表示原始字符串。 ​
  • 函数示例​
  • ​
    {{substr(0,5,"hello world")}}​
    ​
  • 处理结果​
  • ​
    hello​
    ​
​
nospace​
nospace 函数用于删除字符串 str 中的所有空格。​
语法格式如下:​
​
nospace(str)​
​
其中,str 为字符串类型,表示原始字符串。​
  • 函数示例​
  • ​
    {{nospace("hello world")}}​
    ​
  • 处理结果​
  • ​
    helloworld​
    ​
trunc​
trunc 函数用于截取字符串 str 的 [0,i) 子字符串,并返回结果。输出结果为截取的子字符串。​
语法格式如下:​
​
trunc(i,str)​
​
其中:​
  • i:Integer 类型,表示字符串右边界,不包含 i。​
  • str:字符串类型,表示原始字符串。​
  • 函数示例​
  • ​
    {{trunc(5,"hello world")}}​
    ​
  • 处理结果​
  • ​
    hello​
    ​
​
abbrev​
abbrev 函数用于对指定字符串进行省略处理。该函数中应指定省略后的字符串长度,其他字符串用英文句号(...)代替。输出格式为字符串类型。​
语法格式如下:​
​
abbrev(i,str)​
​
其中:​
  • i:Integer 类型,表示保留字符串 [0,i) 位置的内容。​
  • str:字符串类型,表示原始字符串。 ​
  • 函数示例​
  • ​
    {{abbrev(8,"hello world")}}​
    ​
  • 处理结果​
  • ​
    hello...​
    ​
​
abbrevboth​
abbrevboth 函数保留 [i,j) 的 str 子字符串,其他字符串全部使用...替换。 输出格式为字符串类型。​
语法格式如下:​
​
abbrevboth(i,j,str)​
​
其中:​
  • i 和 j:Integer 类型,表示保留字符串 [i,j) 位置的内容。​
  • Str:字符串类型,表示原始字符串。 ​
  • 函数示例​
  • ​
    {{abbrevboth(5,10,"hello world!!!")}}​
    ​
  • 处理结果​
  • ​
    ... wor...​
    ​
​
initials​
initials 函数用于将字符串 str 中每个单词的首字母提取出来,并组合成一个新的字符串。​
语法格式如下:​
​
initials(str)​
​
  • 函数示例​
  • ​
    {{initials("hello world!!!")}}​
    ​
  • 处理结果​
  • ​
    hw​
    ​
​
randAlphaNum​
randAlphaNum 函数用于生成包含数字的随机字符串。 输出格式为字符串类型。​
语法格式如下:​
​
randAlphaNum(n)​
​
其中,n 为 integer 类型,表示字符数量。​
  • 函数示例​
  • ​
    {{randAlphaNum(1)}}​
    ​
  • 处理结果​
  • ​
    5​
    ​
​
randAlpha​
randAlpha 函数用于生成不包含数字的随机字符串。​
语法格式如下:​
​
randAlpha(n)​
​
其中,n 为 Integer 类型,表示字符数量。​
  • 函数示例​
  • ​
    {{randAlpha(1)}}​
    ​
  • 处理结果​
  • ​
    c​
    ​
​
randNumeric​
randNumeric 函数用于生成随机数字。 输出结果为字符串类型。​
语法格式如下:​
​
randNumeric(n)​
​
其中,n 为 integer 类型,表示字符数量。​
  • 函数示例​
  • ​
    {{randNumeric(3)}}​
    ​
  • 处理结果​
  • ​
    321​
    ​
​
randAscii​
andAscii 函数用于生成随机 ARSCII 字符。输出结果为字符串类型。 ​
语法格式如下:​
​
randAscii(n)​
​
其中,n 为 integer 类型,表示字符数量。​
  • 函数示例​
  • ​
    {{randAscii(3)}}​
    ​
  • 处理结果​
  • ​
    i&g​
    ​
​
hasPrefix​
hasPrefix 函数用于判断指定字符串中是否包含指定前缀。 包含时返回 True,否则返回 False。​
语法格式如下:​
​
hasPrefix(pre,str)​
​
其中:​
  • pre:字符串类型,表示字符串前缀。 ​
  • str:字符串类型,表示原始字符串。 ​
  • 函数示例​
  • ​
    {{hasPrefix("hel","hello")}}​
    ​
  • 处理结果​
  • ​
    True​
    ​
​
hasSuffix​
hasSuffix 函数用于判断指定字符串中是否包含指定后缀。 包含时返回 True,否则返回 False。​
语法格式如下:​
​
hasSuffix(suf,str)​
​
其中:​
  • suf:字符串类型,表示字符串后缀。​
  • str:字符串类型,表示原始字符串。​
  • 函数示例​
  • ​
    {{hasSuffix("llo","hello")}}​
    ​
  • 处理结果​
  • ​
    True​
    ​
​
​
squote​
​
squote 函数用于对字符串进行转义,并将其用单引号('')包裹。输出格式为字符串类型。​
语法格式如下:​
​
squote(str)​
​
其中,str 为字符串类型,表示原始字符串。​
  • 函数示例​
  • ​
    {{squote("hello\"")}}​
    ​
  • 处理结果​
  • ​
    'hello"'​
    ​
cat​
cat 函数用于拼接指定字符串。 输出格式为字符串类型。​
语法格式如下:​
​
cat(data=a,b,c)​
​
其中,a、b、c 均为字符串类型,表示待拼接的字符。​
  • 函数示例​
  • ​
    {{cat("hello",1,true)}}​
    ​
  • 处理结果​
  • ​
    hello 1 true​
    ​
indent​
indent 函数用于将字符串对齐,即在指定字符串前补充空格。​
语法格式如下:​
​
indent(n,str)​
​
其中,n 表示补充的空格数量,str 为原始字符串。​
  • 函数示例​
  • ​
    {{indent(3,"hello")}}​
    ​
  • 处理结果​
  • ​
    hello​
    ​
nindent​
nindent 函数用于将字符串换行后对齐,即换行后,再增加 n 个空格。​
语法格式如下:​
​
nindent(n,str)​
​
  • 函数示例​
  • ​
    {{nindent(3,"hello")}}​
    ​
  • 处理结果​
  • ​
    ​
    hello​
    ​
plural​
plural 函数用于条件判断,参数 i 等于 1 时返回第一个参数,否则返回第二个参数。​
语法格式如下:​
​
plural(a,b,i)​
​
​
  • 函数示例​
  • ​
    {{plural("a","b",1)}}​
    ​
  • 处理结果​
  • ​
    a​
    ​
snakecase​
snakecase 函数用于将命名规则转换为下划线分割命名法。​
语法格式如下:​
​
snakecase(str)​
​
​
  • 函数示例​
  • ​
    {{snakecase("HelloWorld")}}​
    ​
  • 处理结果​
  • ​
    hello_world​
    ​
camelcase​
camelcase 函数用于将命名规则转换为大驼峰命名法。​
语法格式如下:​
​
camelcase(str)​
​
  • 函数示例​
  • ​
    {{camelcase("hello_world")}}​
    ​
  • 处理结果​
  • ​
    HelloWorld​
    ​
kebabcase​
kebabcase 函数用于将命名规则转化成连字符(-)分割命名法。​
语法格式如下:​
​
kebabcase(str)​
​
  • 示例1​
  • 函数示例​
  • ​
    {{kebabcase("hello_world")}}​
    ​
  • 处理结果​
  • ​
    hello-world​
    ​
  • 示例2​
  • 函数示例​
  • ​
    {{kebabcase("FirstName")}}​
    ​
  • 处理结果​
  • ​
    first-name​
    ​
swapcase​
swapcase 函数用于将字符串中字符的大小写互相转换。​
语法格式如下:​
​
swapcase(str)​
​
  • 函数示例​
  • ​
    {{swapcase("HelloWorld")}}​
    ​
  • 处理结果​
  • ​
    hELLOwORLD​
    ​
shuffle​
shuffle 函数用于将原始字符串中的字符打乱重新排列成新的字符串。​
语法格式如下:​
​
shuffle(str)​
​
  • 函数示例​
  • ​
    {{shuffle("HelloWorld")}}​
    ​
  • 处理结果​
  • ​
    dHrollelWo​
    ​
​
对象和列表函数​
​
函数​
说明​
使用示例 ​
join​
join 函数使用连接符连接列表 value 中的指定元素。其中,通过 symbol 参数可指定连接符。​
语法格式如下:​
​
join(symbol='',value)​
​
  • 示例1​
  • 函数示例​
  • ​
    {{ join("",list(1, 2, 3)) }}​
    ​
  • 处理结果​
  • ​
    123​
    ​
  • 示例2​
  • 函数示例​
  • ​
    {{ join(',',list(1, 2, 3)) }}​
    ​
  • 处理结果​
  • ​
    1,2,3​
    ​
split​
split 函数用于分割指定字符串 value。处理结果为对象类型。 其中 key 为 _i,字符串类型,其中 i 表示下标。​
语法格式如下:​
​
split(symbol,value)​
​
其中:​
  • symbol:字符串类型,用于指定分隔符。​
  • value:字符串类型,表示原始待分割的字符串。​
  • 函数示例​
  • ​
    {%for k,v in split(",","a,b,c")%}​
    {{k}}:{{v}}​
    {%endfor%}​
    ​
  • 处理结果​
  • ​
    _0:a​
    _1:b​
    _2:c​
    ​
toString​
toString 函数用于将指定参数转换为字符串格式。​
语法格式如下:​
​
toString(value)​
​
  • 函数示例​
  • ​
    {{toString("aa")}}​
    ​
  • 处理结果​
  • ​
    aa​
    ​
toJson​
toJson 函数用于将指定参数转换为 JSON 格式的字符串输出。​
语法格式如下:​
​
toJson(value)​
​
  • 函数示例​
  • ​
    {{toJson(urlParse("http://admin:secret@server.com:8080/api?list=false#anchor"))}}​
    ​
  • 处理结果​
  • ​
    {"fragment": "anchor","host": "server.com:8080","hostname": "server.com","opaque": "","path": "/api","query": "list=false","scheme": "http","userinfo": "admin:secret"}​
    ​
toPrettyJson​
toPrettyJson 函数用于将指定参数转换为格式化的字符串。​
语法格式如下:​
​
toPrettyJson(value)​
​
  • 函数示例​
  • ​
    {{toPrettyJson(urlParse("http://admin:secret@server.com:8080/api?list=false#anchor"))}}​
    ​
  • 处理结果​
  • ​
    {​
    "fragment": "anchor",​
    "host": "server.com:8080",​
    "hostname": "server.com",​
    "opaque": "",​
    "path": "/api",​
    "query": "list=false",​
    "scheme": "http",​
    "userinfo": "admin:secret"​
    }​
    ​
ternary​
ternary 函数用于条件判断,当 value3 值为 true 时返回 value1,否则返回 value2。 ​
语法格式如下:​
​
ternary(value1,value2,value3)​
​
  • 函数示例​
  • ​
    {{ternary(1,2,true)}}​
    ​
  • 处理结果​
  • ​
    1​
    ​
append​
append 函数用于向列表添加指定值,即将值 value 加入到 list1 中。​
语法格式如下:​
​
append(list1,value)​
​
  • 函数示例​
  • ​
    {%-with mp1=list("a","1","b","2")-%}​
    {%-with mp1=append(mp1,"a")%}​
    {{-mp1-}}​
    {%endwith-%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a,1,b,2,a​
    ​
​
数据结构函数​
​
函数 ​
说明 ​
使用示例 ​
list​
list 函数用于将指定参数定义为列表。​
语法格式如下:​
​
list(values=a,b,c,...)​
​
  • 函数示例​
  • ​
    {{list("a","b","c")|join:","}}​
    ​
  • 处理结果​
  • ​
    a,b,c​
    ​
dict​
​
dict 函数将参数定义为键值对类型(key-value)的 JSON 对象并返回,类似于直接使用 {} 创建字典。​
语法格式如下:​
​
dict(key1,value1,key2,value2)​
​
  • 函数示例​
  • ​
    {{toJson(dict("a",1,"b",2))}}​
    ​
  • 处理结果​
  • ​
    {"a":1,"b":2}​
    ​
hasKey​
hasKey 函数用于判断字典 dict 中是否包含指定 key。​
语法格式如下:​
​
hasKey(dict,key)​
​
  • 函数示例​
  • ​
    {%with mp=dict("a",1,"b",2)%}​
    {%if hasKey(mp,"a")%}​
    has​
    {%else%}​
    no​
    {%endif%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    has​
    ​
set​
set 函数用于对字典赋值某个属性。​
语法格式如下:​
​
set(key,value)​
​
  • 函数示例​
  • ​
    {%with mp=dict("a",1,"b",2)%}​
    {%with mp=set(mp,"a",3)%}​
    {%for k,v in mp%}​
    {{k}}:{{v}}​
    {%endfor%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp={"a":3,"b":2}​
    ​
unset​
unset 函数用于删除字典里的某个属性。​
语法格式如下:​
​
unset(map,key)​
​
其中:​
  • map :字段名称,​
  • key :待删除的属性 key。​
  • 函数示例​
  • ​
    {%with mp=dict("a",1,"b",2)%}​
    {%with mp=unset(mp,"a")%}​
    {%for k,v in mp%}​
    {{k}}:{{v}}​
    {%endfor%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp={"b":2}​
    ​
pluck​
pluck 函数用于将多个字典中相同的 key 构造成一个数组。​
语法格式如下:​
​
pluck(key,map1,map2)​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2)%}​
    {%with mp2=dict("a",2,"b",2)%}​
    {%- for v in pluck("a",mp1,mp2) %}​
    {{ v}}​
    {%- endfor -%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    1​
    2​
    ​
merge​
merge 函数用于合并两个字典,取并集。​
语法格式如下:​
​
merge(map1,map2)​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2)%}​
    {%with mp2=dict("b",2,"d",2)%}​
    {%with mp1=merge(mp1,mp2)%}​
    {%- for k,v in mp1 -%}​
    {{k}}:{{v}}​
    {% endfor -%}​
    {%endwith%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a:1​
    b:2​
    d:2​
    ​
mergeOverwrite​
mergeOverwrite 函数用于合并两个字典,如果存在重复 key,则以第二个字典的值为准。​
语法格式如下:​
​
mergeOverwrite(map1,map2)​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a","1","b","2")%}​
    {%with mp2=dict("a","1","b","2")%}​
    {%with mp1=mergeOverwrite(mp1,mp2)%}​
    {%- for k,v in mp1 -%}​
    {{k}}:{{v}}​
    {% endfor -%}​
    {%endwith%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a:1​
    b:2​
    ​
keys​
keys 函数用于获取指定字典的 key 列表,并将其以数组形式返回。​
语法格式如下:​
​
keys(map1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2)%}​
    {%- for v in keys(mp1) -%}​
    {{v}}​
    {% endfor -%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a​
    b​
    ​
values​
​
values 函数用于获取字典的 value 列表。​
语法格式如下:​
​
values(map1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2)%}​
    {%- for v in values(mp1) -%}​
    {{v}}​
    {% endfor -%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    1​
    2​
    ​
pick​
保留字典中的指定 key,并将该键值对保存为新的字典。​
语法格式如下:​
​
pick(map1,key1,key2)​
​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2,"c","3")%}​
    {%- for k,v in pick(mp1,"a","b") -%}​
    {{-k}}:{{v}}​
    {% endfor -%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a:1​
    b:2​
    ​
omit​
删除字典中的指定 key,并将剩余键值对保存为新的字典。​
语法格式如下:​
​
omit(map,key)​
​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2,"c",3)%}​
    {%- for k,v in omit(mp1,"a") -%}​
    {{-k}}:{{v}}​
    {% endfor -%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    b:2​
    c:3​
    ​
deepCopy​
​
deepCopy 函数用于深度复制某个变量。​
语法格式如下:​
​
deepCopy(map1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=dict("a",1,"b",2)%}​
    {%with mp2=deepCopy(mp1)%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • 存在 mp1 和 mp2 两个字典,其内容相同、互不干扰。​
​
数组操作函数​
​
函数 ​
说明 ​
使用示例 ​
push​
push 函数用于向列表添加指定值。​
语法格式如下:​
​
push(mp1,"x")​
​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {%with mp1=push(mp1,"x")%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp1=["a","1","b","2","x"]​
    ​
prepend​
​
prepend 函数用于将值加入到 list 的前面。​
语法格式如下:​
​
prepend(mp1,"x")​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {%with mp1=prepend(mp1,"x")%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp1=["x","a","1","b","2"]​
    ​
first​
first 函数用于返回列表第一个元素。​
语法格式如下:​
​
first(mp1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {{first(mp1)}}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a​
    ​
rest​
rest 函数用于返回列表除第一个元素以外的其他元素。​
语法格式如下:​
​
rest(mp1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%} \n {%with mp1=rest(mp1)%} \n {{toJson(mp1)}} \n {%endwith%} \n {%endwith%}​
    ​
  • 处理结果​
  • ​
    ["1","b","2"]​
    ​
last​
last 函数用于返回列表中的最后一个元素。​
语法格式如下:​
​
last(mp1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {{last(mp1)}}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    2​
    ​
initial​
initial 函数用于返回除最后一个元素以外的所有元素。 ​
语法格式如下:​
​
initial(mp1)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%} \n {%with mp1=initial(mp1)%} \n {{toJson(mp1)}} \n {%endwith%} \n {%endwith%}​
    ​
  • 处理结果​
  • ​
    ​
    ​
    ["a","1","b"]​
    ​
    ​
    ​
reverse​
reverse 函数用于将列表的顺序反转。 ​
语法格式如下:​
​
reverse(mp1)​
​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%} \n {%with mp1=reverse(mp1)%} \n {{toJson(mp1)}} \n {%endwith%} \n {%endwith%}​
    ​
  • 处理结果​
  • ​
    ​
    ​
    ["2","b","1","a"]​
    ​
    ​
    ​
uniq​
uniq 函数用于去除数组中重复的部分。​
语法格式如下:​
​
uniq(mp1)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","1")%}​
    {%with mp1=uniq(mp1)%}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp1=["a","1","b"]​
    ​
without​
without 函数用于取两个数组中不相交的部分,即传入 a 和 b 两个数组,使用差集操作来去除它们之间的公共部分,并输出结果。​
语法格式如下:​
​
without(mp1,mp2)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {%with mp2=list(1,"b",2)%}​
    {{first(without(mp1,mp2))}}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a​
    ​
has​
has 函数用于判断数组中是否存在某个元素。​
语法格式如下:​
​
has(key,mp1)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {{has("a",mp1)}}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    True​
    ​
slice​
slice 函数用于取 slice 中的值,第一个参数为 list 类型,第二个参数为开始下标,第三个参数为结束下标。​
语法格式如下:​
​
slice(map1,开始下标,结束下标)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {%for x in slice(mp1,0,2)%}​
    {{x}}​
    {%endfor%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a​
    1​
    ​
concat​
concat 函数用于将多个数组合并,并保存为新的数组。​
语法格式如下:​
​
concat(map1,map2)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%} \n {%with mp2=list("a","1","b","2")%} \n {%with mp3=concat(mp1,mp2)%} \n {{toJson(mp3)}} \n {%endwith%} \n {%endwith%} \n {%endwith%}​
    ​
  • 处理结果​
  • ​
    mp3=["a","1","b","2","a","1","b","2"]​
    ​
​
日期函数​
​
函数 ​
说明 ​
使用示例 ​
date​
date 函数用于将指定时间戳转换为指定格式的字符串。​
语法格式如下:​
​
date("2006-01-02 15:04:05",Unix时间戳)​
​
  • 第一个参数表示时间格式,必须指定为2006-01-02 15:04:05。​
  • Unix时间戳:待转换格式的 UTC 时间,默认转换当前时间。该参数为 Integer 类型或者 time 类型。 ​
  • 函数示例​
  • ​
    {{date("2006-01-02 15:04:05",now())}}​
    ​
  • 处理结果​
  • ​
    2023-11-16 16:26:20​
    ​
dateInZone/date_in_zone​
dateInZone/date_in_zone 函数用于获取指定时区的当前时间。​
语法格式如下:​
​
date_in_zone("2006-01-02 15:04:05",Unix时间戳,时区)​
​
  • 第一个参数表示时间格式,必须指定为( 2006-01-02 15:04:05)。​
  • Unix时间戳:待转换格式的 UTC 时间,默认为当前时刻。​
  • 时区:目标时区,即将 UTC 时间转换为指定时区的时间,例如 UTC+8。默认为当前时区。​
  • 函数示例​
  • ​
    {{date_in_zone("2006-01-02 15:04:05","","UTC+8")}}​
    ​
  • 处理结果​
  • ​
    2023-11-16 16:26:20​
    ​
date_modify/dateModify​
date_modify/dateModify 函数用于在时间基础上进行加减时间,例如在当前时间的基础上加 20 分钟,返回 time 类型。​
语法格式如下:​
​
date_modify(time,Unix时间戳)​
​
  • time:增加或减少的时间,例如 +20m 表示加 20 分钟。支持的单位包括小时(h)、分钟(m)、秒(s)。​
  • Unix时间戳:待转换格式的 UTC 时间,默认为当前时刻。也可以指定为 now() 表示当前时间。​
  • 函数示例​
  • ​
    date_modify("+20m",now())​
    ​
  • 处理结果​
  • ​
    2023-11-16 17:55:36.08687 +0800 CST m=+1200.191703835​
    ​
now​
now 函数用于返回当前时间,返回数据类型为 time。​
语法格式如下:​
​
now()​
​
  • 函数示例​
  • ​
    now()​
    ​
  • 处理结果​
  • ​
    2023-11-16 17:36:38.006711 +0800 CST m=+0.200781293​
    ​
ago​
ago 函数用于返回指定日期和当前时刻的时间间隔。​
语法格式如下:​
​
ago(时间戳)​
​
​
  • 函数示例​
  • ​
    ago(date_modify("+20m",now()))​
    ​
  • 处理结果​
  • ​
    -20m0s​
    ​
​
加密函数​
​
函数 ​
说明 ​
使用示例 ​
sha256sum​
sha256sum 函数用于计算输入字符串的 SHA256 值。​
语法格式如下:​
​
sha256sum(string)​
​
其中,string 表示待编码的字符串。​
  • 函数示例​
  • ​
    {{sha256sum("hello")}}​
    ​
  • 处理结果​
  • ​
    2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824​
    ​
sha1sum​
sha1sum 函数用于计算输入字符串 SHA1 值。​
语法格式如下:​
​
sha1sum(string)​
​
其中,string 表示待编码的字符串。​
  • 函数示例​
  • ​
    {{sha1sum("hello")}}​
    ​
  • 处理结果​
  • ​
    aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d​
    ​
adler32sum​
adler32sum 函数用于返回 Adler-32 算法校验和。​
语法格式如下:​
​
adler32sum(string)​
​
其中,string 表示待编码的字符串。​
  • 函数示例​
  • ​
    adler32sum("hello")​
    ​
  • 处理结果​
  • ​
    103547413​
    ​
​
reflect 函数​
​
函数 ​
说明 ​
使用示例 ​
typeOf​
​
typeOf 函数用于获取变量类型。​
语法格式如下:​
​
typeOf(key)​
​
  • 函数示例​
  • ​
    {{typeOf("a")}}​
    ​
  • 处理结果​
  • ​
    string​
    ​
typeIs​
typeIs 函数用于判断指定字符串是否为指定格式。返回数据类型为 Boolean。​
语法格式如下:​
​
typeIs(type,string)​
​
其中:​
  • type:格式名称,支持设置为 Integer、string 等 golang 中 fmt.Printf 指定 %T 参数的打印值。​
  • string:待判断格式的字符串。​
  • 函数示例​
  • ​
    {{typeIs("int",1)}}​
    ​
  • 处理结果​
  • ​
    True​
    ​
kindOf​
kindOf 函数用于判断指定参数的数据类型。​
语法格式如下:​
​
kindOf()​
​
​
  • 函数示例​
  • ​
    {{kindOf(1)}}​
    ​
  • 处理结果​
  • ​
    int​
    ​
deepEqual​
deepEqual 函数用于反射判断两个值是否相等。返回数据类型为 Boolean。​
语法格式如下:​
​
deepEqual(value1,value2)​
​
  • 函数示例​
  • ​
    {%with mp1=list("a","1","b","2")%}​
    {%with mp2=list("a","1","b","2")%}​
    {{deepEqual(mp1,mp2)}}​
    {%endwith%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    True​
    ​
​
正则表达式函数​
​
函数 ​
说明 ​
使用示例 ​
regexMatch​
regexMatch 函数用于判断指定字符串和正则表达式是否匹配。匹配则返回 True,否则返回 False。​
等同于 Go 语言的正则 MatchString 函数。​
语法格式如下:​
​
regexMatch(regex,string)​
​
其中:​
  • regex:正则表达式。​
  • String:待判断的字符串。​
  • 函数示例​
  • ​
    regexMatch("^Hello","Hello world")​
    ​
  • 处理结果​
  • ​
    True​
    ​
​
regexFind​
regexFind 函数用于使用指定的正则表达式在指定字符串中提取内容,提取时匹配一次。​
等同于 Go 语言的 FindString 函数。​
语法格式如下:​
​
regexFind(regex,string)​
​
其中:​
  • regex:正则表达式。​
  • String:判断的字符串。​
  • 函数示例​
  • ​
    regexFind("[abc]","abcd")​
    ​
  • 处理结果​
  • ​
    a​
    ​
​
regexFindAll​
regexFindAll 函数用于使用指定的正则表达式在指定字符串中提取内容,提取时指定匹配次数。​
等同于 Go 语言的正则 MatchString 函数。​
语法格式如下:​
​
regexFindAll(regex,string,n)​
​
其中:​
  • regex:正则表达式。​
  • String:待判断的字符串。​
  • n:匹配次数。​
  • 函数示例​
  • ​
    {%with t=regexFindAll("[abc]","abca",4)%}​
    {%for x in t%}​
    {{x}}​
    {%endfor%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    a​
    b​
    c​
    a​
    ​
regexReplaceAll​
regexReplaceAll 函数用于将匹配正则表达式的字符串替换为指定字符串。​
等同于 Go 语言的 ReplaceAllString 函数。​
语法格式如下:​
​
regexReplaceAll(regex,string1,string2)​
​
其中:​
  • regex:正则表达式。​
  • string1:待判断的字符串。​
  • string2:替换后的字符串。​
  • 函数示例​
  • ​
    regexReplaceAll("[abc]","abcd","")​
    ​
  • 处理结果​
  • ​
    d​
    ​
​
regexSplit​
regexSplit 函数等同于 Golang re.Split,使用正则分割字符串。返回数据类型为数组。​
语法格式如下:​
​
regexSplit(regex,string,n)​
​
其中:​
  • regex:正则表达式。​
  • String:待判断的字符串。​
  • n:匹配次数。​
  • 函数示例​
  • ​
    {%with t=regexSplit("[\\s]","1 2",2)%}​
    {%for x in t%}​
    {{x}}​
    {%endfor%}​
    {%endwith%}​
    ​
  • 处理结果​
  • ​
    1​
    2​
    ​
​
编解码函数​
​
函数​
说明​
使用示例​
b64enc​
b64enc 函数用于对指定字符串进行 Base64 编码。​
语法格式如下:​
​
b64enc(string)​
​
​
​
  • 函数示例​
  • ​
    b64enc("hello")​
    ​
  • 处理结果​
  • ​
    aGVsbG8=​
    ​
b64dec​
b64dec 函数用于对指定字符串进行 Base64 解码。语法格式如下:​
​
b64dec(string)​
​
​
​
​
  • 函数示例​
  • ​
    b64dec("aGVsbG8=")​
    ​
  • 处理结果​
  • ​
    hello​
    ​
b32enc​
b32enc 函数用于对指定字符串进行 Base32 编码。语法格式如下:​
​
b32enc(string)​
​
​
​
  • 函数示例​
  • ​
    b32enc("hello")​
    ​
  • 处理结果​
  • ​
    NBSWY3DP​
    ​
b32dec​
b32dec 函数用于对指定字符串进行 Base32 解码。语法格式如下:​
​
b32dec(string)​
​
​
​
​
  • 函数示例​
  • ​
    b32dec("NBSWY3DP")​
    ​
  • 处理结果​
  • ​
    hello​
    ​
​
函数示例​
示例 1:提取QueryLog内容。​
  • QueryLog 内容示例​
  • ​
    [​
    [​
    {​
    "double_key": 1.1,​
    "name": "bytedance",​
    "obj_key": {​
    "key1": 1,​
    "key2": "key2",​
    "key_double": 1.1,​
    "key_long": 123​
    },​
    "type": 1​
    }​
    ]​
    ]​
    ​
  • 函数示例​
  • ​
    对比项​
    不使用函数​
    使用 toPrettyJson 函数​
    通知内容配置​
    {{QueryLog}}​
    {{toPrettyJson(QueryLog)}}​
    结果​
    ​
    <[][]map[string]interface {} Value>​
    ​
    说明​
    未输出实际值。​
    ​
    ​
    [​
    [​
    {​
    "double_key": 1.1,​
    "name": "bytedance",​
    "obj_key": {​
    "key1": 1,​
    "key2": "key2",​
    "key_double": 1.1,​
    "key_long": 123​
    },​
    "type": 1​
    }​
    ]​
    ]​
    ​
    说明​
    已输出实际值。​
    ​
示例2:获取执行信息页面链接中的前 68 个字符​
  • {{DetailUrl}} 内容示例​
  • ​
    https://console.volcengine.com/tls/region:tls+cn-beijing/project/a573686e-d097-4227-9fa5-612d0ae2****/alarms/7070267f-30da-4861-8d0a-01f4bc6d5****detail​
    ​
  • 函数示例​
  • ​
    {{substr(0,68, DetailUrl)}}​
    ​
  • 处理结果​
  • ​
    https://console.volcengine.com/tls/​
    ​
示例3:将告警中最后一条执行语句的起始时间戳转换为指定格式​
  • {{NotifyTimeUnix}}内容示例​
  • ​
    1708582822​
    ​
  • 函数示例​
  • ​
    本次告警中最后一条执行语句的起始时间:{{date("2006-01-02 15:04:05",QueryStartTime)}}​
    ​
  • 处理结果​
  • ​
    本次告警中最后一条执行语句的起始时间:2024-02-22 14:20:22​
    ​
示例4:对告警策略 ID 进行 SHA256 加密​
  • {{AlarmID}}内容示例​
  • ​
    0a335663-88f1-4b51-ad67-c71ae008****​
    ​
  • 函数示例​
  • ​
    告警策略ID:{{sha256sum(AlarmID)}}​
    ​
  • 处理结果​
  • ​
    告警策略ID:b8dc90d8de9cc33efffab28ad263598de8938f09356f83632176bff09ef6****​
    ​
​
​
最近更新时间:2026.10.16 16:22:54
这个页面对您有帮助吗?
有用
有用
无用
无用