-
Notifications
You must be signed in to change notification settings - Fork 255
CSV Parser
Sun Jianbo edited this page Mar 5, 2018
·
4 revisions
CSV Parser 是一种按分隔符解析日志的解析方式。
CSV parser是按行读取日志的,对于每一行,以分隔符分隔,然后通过csv_schema
命名分隔出来的字段名称以及字段类型。
默认情况下CSV是按\t
分隔日志的,可以配置的分隔符包括但不限于, 各类字母、数字、特殊符号(#
、!
、*
、@
、%
、^
、...)等等。
"parser":{
"name":"req_csv",
"type":"csv",
"csv_splitter":"\t",
"csv_schema":"logtype string, service string, timestamp long, method string, path string , reqheader jsonmap, hello jsonmap{a string,b float}, hi jsonmap{a long,...}",
"labels":"machine nb110,team pandora"
},
-
csv_schema
是按照逗号分隔的字符串,每个部分格式按照字段名 字段类型
构成,字段类型现在支持string
,long
,jsonmap
,float
,date
。 -
labels
填一些额外的标签信息,同样逗号分隔,每个部分由空格隔开,左边是标签的key,右边是value。 -
csv_splitter
csv文件的分隔符定义,默认为'\t' - 类型说明
-
string
go 的string -
long
go 的int64 -
float
go 的float64 -
date
时间类型,具体参见grok date字段解析类型 -
jsonmap
将json反序列化为map[string]interface{}
,key必须为字符串格式,value为string
,long
或者float
。如果value不属于这三种格式,将会强制将value转成string
类型 -
jsonmap
如果要指定jsonmap key的类型并且选定一些jsonmap中的key,那么只要用花括号包含选定的key以及其类型即可,里面的语法与外部相同也是以逗号","分隔不同的key和类型。目前不支持嵌套的jsonmap,如果除了选定的key,其他的key也要,就以”...“结尾即可。
-
- Parser中解析出的字段就是csv_schema中命名的字段,还包括labels中定义的标签名,可以在sender中选择需要发送的字段和标签。
-
disable_record_errdata
默认为false
,解析失败的数据会默认出现在"pandora_stash"字段,该选项可以禁止记录解析失败的数据。
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版