转载请标明出处:
http://blog.csdn.net/qq_27818541/article/details/108500499
本文出自:【BigManing的博客】
script
使用Javascript
处理event ,可以更加灵活的预处理业务。
比如说 event中的message字段里是否以hello
开头,如果是,就添加tag【has hello
】否则就是【no hello
】。 那么配置如下:
processors:
- script:
lang: javascript
id: startWithHello
source: >
function process(event) {
var str = event.Get("message");
if("Hello".indexOf(str)==0){
event.Tag("has hello");
}else{
event.Tag("no hello");
}
}
输出结果(tag部分):
其他说明
除了直接写js code,还可以引用文件
processors:
- script:
lang: javascript
id: startWithHello
file: ${path.config}/filter.js
#files: ${path.config}/*.js
常用 API
取值
var value = event.Get(key);
存值
var old = event.Put(key, value);
重命名
var success = event.Rename("source", "target");
删除字段
var deleted = event.Delete("user.email");
丢弃
event.Cancel(); return;
打Tag
event.Tag("user_event");
追加值
event.AppendTo("error.message", "invalid file hash");
经典示例
好多项目有这个需求,那就是 使用日志时间 为采集时间。 下面的文章 就实现了这样的功能。