字段值映射处理
Last updated
Last updated
processor_dict_map
插件可对指定字段的值查表映射
推荐版本:iLogtail v1.0.27 及以上
Type
String
是
插件类型,固定为processor_dict_map
。
DictFilePath
string
否
本地的 csv 字典文件,该 csv 文件分隔符为,
,字段引用标志为"
。映射规则为表格第一列为原数据,表格第二列为目标数据。默认为空。
MapDict
Map
否
映射字典,规则为将键
映射到值
。若映射字典较小,可直接在设置中的填写,不必提供本地文件,默认为空。当DictFilePath
非空,忽略设置中的该字段,只使用DictFilePath
数据。
SourceKey
string
是
原数据在日志中的字段名。若有多个同名输入,默认只处理第一个。
DestKey
string
否
映射后数据在日志中的字段名,默认为和 SourceKey 一致。
HandleMissing
bool
否
是否处理日志中缺失目标字段的情况,默认为false
不处理。
Missing
string
否
处理日志中缺失目标字段的情况时的填充值,默认为"Unknown"
。
Mode
string
否
当映射后字段于原日志中存在时的处理方法,默认为"overwrite"
即覆写原字段,若设置为"fill"
则不再覆写目标字段。
MaxDictSize
int
否
映射字典的最大大小,默认1000
,即最大存储 1000 条映射规则。若希望限制插件对内存的占用,可以将本设置调小。
注意到这里同时设置了两种映射规则来源:本地文件ipExample.csv
和配置文件{"1":"TCP","2":"UDP","3":"HTTP","*":"Unknown"}
。当两者同时设置时,默认使用配置文件,即ipExample.csv
,同时忽略配置文件的内容。
此配置将检查日志中_ip_
字段的值是否存在。若不存在,由于设置:"HandleMissing": true,
,故会处理这种缺失,将在日志中增加"_processed_ip_"
字段并填充缺失值为"Not Detected"
。若存在,同样将在日志中增加"_processed_ip_"
字段,将查映射字典ipExample.csv
得到的值填入该字段内。若查表无,则不处理,日志不发生改变。
映射表必须为 UFT-8 格式输入,每行两列,,将第一列的内容映射到第二列。
如ipExample.csv
内容为:
当使用如上设置,连续对日志进行映射,处理结果如下:
连续日志输入
在配置 Logtail 时,请将映射表文件(如上文的ipExample.csv
)放在用户目录下(如/home/ipExample.csv
)而非 Logtail 的配置文件夹ilogtail
中,因ilogtail
文件夹会在 Logtail 升级时被删除。具体配置规则请参考 。