package com.flume;
import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.interceptor.Interceptor;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
public class MyInterceptor implements Interceptor {
@Override
public void initialize() {
}
@Override
public Event intercept(Event event) {
StringBuilder sb = new StringBuilder("");
try {
String body = new String(event.getBody(),"utf-8");
String[] msgs = body.split(" ");
if(msgs.length != 4){
event.setBody("not match".getBytes());
return event;
}
sb.append("{")
.append("\"city\":").append("\"").append(msgs[0]).append("\",")
.append("\"name\":").append("\"").append(msgs[1]).append("\",")
.append("\"age\":").append("\"").append(msgs[2]).append("\",")
.append("\"date\":").append("\"").append(msgs[3]).append("\"}");
event.setBody(sb.toString().getBytes());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return event;
}
@Override
public void close() {
}
@Override
public List<Event> intercept(List<Event> list) {
List<Event> lists = new ArrayList<>();
for (Event event:list) {
if(event != null){
list.add(event);
}
}
return lists;
}
public static class Builder implements Interceptor.Builder{
@Override
public Interceptor build() {
return new MyInterceptor();
}
@Override
public void configure(Context context) {
}
}
}
client.sources.source_client.interceptors=i1
client.sources.source_client.interceptors.i1.type= com.besttone.interceptor.LogAnalysis$Builder