最近更新时间:2023-04-26 15:40:34
函数介绍
获取指定字段的值,可传入多个字段名,返回第一个存在的字段的值。
语法描述
v(key1,key2,...,default=null)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 指定的字段名称 |
default | any | 否 | 当指定的字段名不存在时,返回default的值。 |
示例
根据条件提取需要的字段
原始日志
{"name":"ks","age":18}
加工规则
set("new_name",v("name"))
加工结果
{"name":"ks","age":18,"new_name":"ks"}
函数介绍
添加新的字段或为字段重新赋值,可同时传递多组key和value。
语法描述
set(key1,value1,key2,value2,...,mode="overwrite")
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 指定字段名称 |
value | any | 是 | 指定字段值 |
mode | string | 否 | 字段覆盖模式,overwrite |
示例1
添加一个新字段k2
原始日志
{"k1":"v1"}
加工规则
set("k2","v2")
加工结果
{"k1":"v1","k2":"v2"}
示例2
将k1的字段值赋给新字段k2
原始日志
{"k1":"v1"}
加工规则
set("k2",v("k1"))
加工结果
{"k1":"v1","k2":"v1"}
示例3
如果存在k1字段,将其值赋给新字段k2
原始日志
{"k1":"v1"}
加工规则
if(has_field("k1"),set("k2",v("k1")))
加工结果
{"k1":"v1","k2":"v1"}
函数介绍
删除指定的字段。
语法描述
drop_fields(key1,key2,...,regex=false)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 需要删除的字段名称,可以是正则表达式。 |
regex | bool | 否 | 是否将参数key作为正则表达式进行匹配,设置为false表示不作为正则表达式匹配,默认为false |
示例
当存在字段k1时,删除字段k2。
原始日志
{"k1":"v1","k2":"v2","k3":"v3"}
加工规则
if(has_field("k1"),drop_fields("k2"))
加工结果
{"k1":"v1","k3":"v3"}
函数介绍
保留指定字段,其它字段将被删除。
语法描述
keep_fields(key1,key2,...,regex=true)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 需要保留的字段名称,可以是正则表达式,其它字段将被删除 |
regex | bool | 否 | 是否将参数key作为正则表达式进行匹配,设置为false表示不作为正则表达式匹配。默认是true |
示例
当存在字段k1时,保留字段k1,k2。
原始日志
{"name":"ks","content":"123"}
加工规则
if(has_field("k1"),keep_fields("k1","k2"))
加工结果
{"k1":"v1","k2":"v2"}
函数介绍
将符合条件的字段打包后输出到新的字段中。
语法描述
pack_fields(output_field,include=".*",exclude="",drop_packed=true)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
output_field | string | 是 | 打包后输出的目标字段名称 |
include | string | 否 | 包含字段的正则表达式,符合该表达式的字段将会被打包 |
exclude | string | 否 | 排除字段的正则表达式,符合该表达式的字段将不会被打包 |
drop_packed | bool | 否 | 是否删除被打包的原字段,true表示删除,默认是true |
示例1
将所有字段打包输出到新字段k_all中
原始日志
{"k1":"v1","k2":"v2","k3":"v3"}
加工规则
pack_fields("k_all")
加工结果
{"k_all":{"k1":"v1","k2":"v2","k3":"v3"}}
示例2
打包符合正则表达式的字段到新字段k_all中,并保留被打包字段
原始日志
{"k1":"v1","k2":"v2","content":"content"}
加工规则
pack_fields("k_all",include="[a-z]+\d+",drop_packed=false)
加工结果
{"k_all":{"k1":"v1","k2":"v2"},"k1":"v1","k2":"v2","content":"content"}
函数介绍
对符合条件的字段进行重命名
语法描述
rename(key1,new_key1,key2,new_key2,...,regex=false)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 字段名,可以为正则表达式。 |
new_key | string | 是 | 字段新名称 |
regex | bool | 否 | 设置为true时,表示将key参数作为正则进行匹配,默认为true |
示例
将字段名称k1修改为name
原始日志
{"k1":"v1"}
加工规则
rename("k1","name")
加工结果
{"name":"v1"}
纯净模式