云日志服务 LTS-字段值提取函数:e_csv、e_psv、e_tsv
e_csv、e_psv、e_tsv
使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。
- e_csv:默认分隔符为半角逗号(,)。
- e_psv:默认分隔符为竖线(|)。
- e_tsv:默认分隔符为\t。
- 函数格式
e_csv(源字段名, 目标字段列表, sep=",", quote='"', restrict=true, mode="fill-auto")e_psv(源字段名, 目标字段列表, sep="|", quote='"', restrict=true, mode="fill-auto")e_tsv(源字段名, 目标字段列表, sep="\t", quote='"', restrict=true, mode="fill-auto")
- 参数说明
参数名称
参数类型
是否必填
说明
源字段名
任意
是
源字段名。如果字段不存在,则不进行任何操作。
目标字段列表
任意
是
字段值经过分隔符分隔后的每个值对应的字段名。可以是字符串的列表,例如:["error", "message", "result"]。
当字段名中不包含逗号时,也可以直接用逗号作为分隔字符,例如:"error, message, result"。
sep
String
否
分隔符,只能是单个字符。
quote
String
否
引用符,用于包裹值的字符。当值包含分隔符时需要使用。
restrict
Boolean
否
是否采用严格模式,默认为false表示非严格模式。当分隔值的个数与目标字段列表数不一致时:
- 严格模式下不进行任何操作。
- 非严格模式下对前几个可以配对的字段进行赋值。
mode
String
否
字段的覆盖模式。默认为fill-auto。
- 返回结果
返回附带新字段值的日志。
- 函数示例
以e_csv为例,e_psv和e_tsv功能类似。
- 测试数据
{ "content": "192.168.0.100,10/Jun/2019:11:32:16 +0800,example.aadoc.com,GET /zf/11874.html HTTP/1.1,200,0.077,6404,192.168.0.100:8001,200,0.060,https://image.developer.aadoc.com/s?q=%E8%9B%8B%E8%8A%B1%E9%BE%99%E9%A1%BB%E9%9D%A2%E7%9A%84%E5%81%9A%E6%B3%95&from=wy878378&uc_param_str=dnntnwvepffrgibijbprsvdsei,-,Mozilla/5.0 (Linux; Android 9; HWI-AL00 Build/HUAWEIHWI-AL00) AppleWebKit/537.36,-,-"}
- 加工规则
e_csv("content", "remote_addr, time_local,host,request,status,request_time,body_bytes_sent,upstream_addr,upstream_status, upstream_response_time,http_referer,http_x_forwarded_for,http_user_agent,session_id,guid")
- 加工结果
content: 192.168.0.100,10/Jun/2019:11:32:16 +0800,example.aadoc.com,GET /zf/11874.html HTTP/1.1,200,0.077,6404,192.168.0.100:8001,200,0.060,https://image.developer.aadoc.com/s?q=%E8%9B%8B%E8%8A%B1%E9%BE%99%E9%A1%BB%E9%9D%A2%E7%9A%84%E5%81%9A%E6%B3%95&from=wy878378&uc_param_str=dnntnwvepffrgibijbprsvdsei,-,Mozilla/5.0 (Linux; Android 9; HWI-AL00 Build/HUAWEIHWI-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36,-,- body_bytes_sent: 6404guid: -host: example.aadoc.comhttp_referer: https://image.developer.aadoc.com/s?q=%E8%9B%8B%E8%8A%B1%E9%BE%99%E9%A1%BB%E9%9D%A2%E7%9A%84%E5%81%9A%E6%B3%95&from=wy878378&uc_param_str=dnntnwvepffrgibijbprsvdseihttp_user_agent: Mozilla/5.0 (Linux; Android 9; HWI-AL00 Build/HUAWEIHWI-AL00) AppleWebKit/537.36 http_x_forwarded_for: -remote_addr: 192.168.0.100 request: GET /zf/11874.html HTTP/1.1 request_time: 0.077session_id: -status: 200time_local: 10/Jun/2019:11:32:16 +0800 topic: syslog-forwarder upstream_addr: 192.168.0.100:8001upstream_response_time: 0.060upstream_status: 200
- 测试数据
- 更多参考
支持和其他函数组合使用。