-
Notifications
You must be signed in to change notification settings - Fork 262
[script]Transformer
redHJ edited this page May 17, 2018
·
7 revisions
在Parser后使用,针对key指定的字段进行替换,执行key指定字段的脚本,同时支持输入脚本或输入脚本路径进行执行。
配置如下:
{
"type":"script",
"key":"ScriptKey",
"new":"RecordKey",
"interpreter":"bash",
"scriptpath":"",
"script":""
}
该功能可以对指定的key进行脚本执行结果的替换。
key指定的字段里存的如果是具体脚本的路径,则支持执行该脚本并将脚本执行结果替换key指定字段的值,或者创建new指定的字段并将脚本执行结果存入该字段
key指定的字段里存的如果不是路径,则需要填写script或者scriptpath内容,此时会执行script或者scriptpath,并将脚本执行结果存入key或者new字段。
-
new字段可以设置脚本执行结果存入一个新的字段,不改变原来字段所存的内容,如果不想改变key指定字段所存内容又想记录脚本执行结果,可以通过这个参数设置。默认情况下无需填写,脚本执行结果会替换key指定字段所存内容。 -
interpreter字段可以设置脚本执行解释器,默认为bash。 -
scriptpath字段支持指定脚本文件路径,如果填写了该字段,会优先执行该脚本文件,不执行key指定字段的脚本。默认情况下无需填写,默认会执行key指定字段的脚本。 -
script字段支持指定所需执行脚本内容,如果填写了该字段,会优先执行该脚本内容,不执行scriptpath和key指定字段的脚本。默认情况下无需填写,默认会执行key指定字段的脚本。 -
key字段支持多级嵌套,多级间用.符号连接,如abc.xyz,表示 data["abc"]["xyz"]中的数据。
带有script Transformer的完整配置类似如下:
{
"name":"test2.csv",
"reader":{
"log_path":"./tests/logdir",
"mode":"dir"
},
"parser":{
"name":"jsonps",
"type":"json"
},
"transforms":[{
"type":"script",
"key":"key1",
"new":"",
"interpreter":"bash",
"scriptpath":"",
"script":""
}],
"senders":[{
"name":"file_sender",
"sender_type":"file",
"file_send_path":"./test2/test2_csv_file.txt"
}]
}
此时会执行/usr/local/my.sh脚本,并将执行的脚本结果替换key字段
带有script Transformer的完整配置类似如下:
{
"name":"test2.csv",
"reader":{
"log_path":"./tests/logdir",
"mode":"dir"
},
"parser":{
"name":"jsonps",
"type":"json"
},
"transforms":[{
"type":"script",
"key":"status",
"new":"newKey",
"interpreter":"bash",
"scriptpath":"/usr/local/status.sh",
"script":""
}],
"senders":[{
"name":"file_sender",
"sender_type":"file",
"file_send_path":"./test2/test2_csv_file.txt"
}]
}
此时会执行/usr/local/status.sh脚本,然后新建字段newKey,并将脚本执行的结果放入newKey中
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版