最近更新时间:2023-04-26 15:40:34
函数介绍
根据条件判断是否丢弃该数据
语法描述
drop(condition)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
condition | bool | 否 | 是否丢弃该数据,一般传入一个条件判断函数的结果 |
示例1
原始日志
{"status":true, "k1":"v1"},
{"status":false, "k1":"v1"}
加工规则
if(v("status"),drop())
加工结果
{"status":false, "k1":"v1"}
函数介绍
根据条件判断是否保留该数据
语法描述
keep(condition)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
condition | bool | 否 | 是否保留该数据,一般传入一个条件判断函数的结果,默认为true |
示例
原始日志
{"status":true, "k1":"v1"},
{"status":false, "k1":"v1"}
加工规则
keep(v("status"))
加工结果
{"status":true, "k1":"v1"}
函数介绍
基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。分裂失败返回原日志。
语法描述
split(key, sep=",", quote="\"", lstrip=true,jmes="", output="")
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 需要分裂的字段名。字段值必须是字符串或数组。 |
sep | string | 否 | 分割多个值的分隔符。必须是单个字符。默认"," |
quote | string | 否 | 包裹值的引用符。必须是单个字符。默认" |
lstrip | bool | 否 | 是否将值左边的空格去掉。默认true |
jmes | string | 否 | 将字段转换为json对象,再根据JMES提取的值进行分裂。支持字符串和数组。 |
output | string | 否 | 为分裂值设置新的字段名。默认会直接使用key参数传入的字段名称 |
示例1
原始日志
{"from":"a,b,c","name":"ks","age":23}
加工规则
split("from")
加工结果
[
{"from":"a","name":"ks","age":23},
{"from":"b","name":"ks","age":23},
{"from":"c","name":"ks","age":23}
]
示例2
将分裂值输出到新的字段名。
原始日志
{"from":"a,b,c","name":"ks","age":23}
加工规则
split("from",output="new_column")
加工结果
[
{"from":"a,b,c","new_column":"a","name":"ks","age":23},
{"from":"a,b,c","new_column":"b","name":"ks","age":23},
{"from":"a,b,c","new_column":"c","name":"ks","age":23}
]
示例3
自定义分隔符和引用符。
原始日志
{"from":"*a*|*b*|*c*","name":"ks","age":23}
加工规则
split("from",sep="|",quote="*")
加工结果
[
{"from":"a","name":"ks","age":23},
{"from":"b","name":"ks","age":23},
{"from":"c","name":"ks","age":23}
]
函数介绍
将日志输出到指定目标日志池。如果目标日志池不存在,日志将被输出到错误日志池。
语法描述
output(name,stop=true)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
name | string | 是 | 数据加工任务中配置的输出目标的名称。 |
stop | bool | 否 | 是否终止之后的函数执行。默认true |
示例1
根据条件将日志输出到指定日志池
原始日志
{"level":"info","content":"123"}
加工规则
switch(op_eq(v("level"),"info"),output("log_info"),op_eq(v("level"),"error"),output("log_error"))
加工结果
日志被输出到目标名称为“log_info”的日志池。
示例2
设置stop为false,继续处理日志并将其插入到默认日志池。
原始日志
{"level":"info","content":"123"}
加工规则
if(op_eq(v("level"),"info"),output("log_info",stop=false))
set("content","456")
加工结果
{"level":"info","content":"123"}:被输出到目标名称为“log_info”的日志池。
{"level":"info","content":"456"}:被输出到默认日志池
纯净模式