-
Notifications
You must be signed in to change notification settings - Fork 255
[script]Transformer
Sun Jianbo edited this page May 22, 2018
·
7 revisions
在Parser后使用,将key指定的字段作为参数传入脚本进行执行,支持输入脚本或输入脚本路径进行执行。
配置如下:
{
"type":"script",
"key":"ScriptKey",
"new":"RecordKey",
"interpreter":"bash",
"scriptpath":"scriptpath",
"script":""
}
该功能实现将指定的key
字段的值作为参数传入脚本执行,并将执行结果写入new
参数指定的字段中。
-
key
字段支持多级嵌套,多级间用.
符号连接,如abc.xyz
,表示 data["abc"]["xyz"]中的数据,指定的字段里可以填写多个,用,
分割,代表将多个值当作参数传入脚本执行。 -
new
字段设置将脚本执行结果存入一个新的字段,不改变原来字段所存的内容。 -
interpreter
字段可以设置脚本执行解释器,默认为bash。 -
scriptpath
字段支持指定脚本文件路径,如果填写了该字段,会执行该脚本文件。 -
script
字段支持指定所需执行脚本内容,如果填写了该字段,会优先执行该脚本内容,不执行scriptpath
指定字段的脚本。
带有script Transformer的完整配置类似如下:
{
"name":"test2.csv",
"reader":{
"log_path":"./tests/logdir",
"mode":"dir"
},
"parser":{
"name":"jsonps",
"type":"json"
},
"transforms":[{
"type":"script",
"key":"key1,key2",
"new":"new_key1",
"interpreter":"bash",
"scriptpath":"/dir/script.path",
"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
中,如果脚本执行出错,错误将会写入newKey_error
字段
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版