1.优化node的processChain写法。

This commit is contained in:
wusheng 2016-01-18 11:04:54 +08:00
parent 1b6e6e95d7
commit 39383c4ad8
7 changed files with 16 additions and 29 deletions

View File

@ -1,19 +1,15 @@
package com.ai.cloud.skywalking.analysis.filter;
import com.ai.cloud.skywalking.analysis.config.Config;
import com.ai.cloud.skywalking.analysis.config.ConfigInitializer;
import com.ai.cloud.skywalking.analysis.model.ChainNode;
import com.ai.cloud.skywalking.analysis.model.CostMap;
import com.ai.cloud.skywalking.analysis.model.SpanEntry;
import com.ai.cloud.skywalking.protocol.Span;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ai.cloud.skywalking.analysis.config.Config;
public class SpanNodeProcessChain {
private static Logger logger = LoggerFactory.getLogger(SpanNodeProcessChain.class.getName());
private static Map<String, SpanNodeProcessFilter> filterMap;
@ -40,7 +36,7 @@ public class SpanNodeProcessChain {
SpanNodeProcessFilter currentFilter = null;
for (int i = filters.length - 1; i >= 0; i--) {
try {
Class filterClass = Class.forName(Config.Filter.FILTER_PACKAGE_NAME + "." + filters[i]);
Class<?> filterClass = Class.forName(Config.Filter.FILTER_PACKAGE_NAME + "." + filters[i]);
SpanNodeProcessFilter tmpSpanNodeFilter = (SpanNodeProcessFilter) filterClass.newInstance();
tmpSpanNodeFilter.setNextProcessChain(currentFilter);
currentFilter = tmpSpanNodeFilter;

View File

@ -3,7 +3,6 @@ package com.ai.cloud.skywalking.analysis.filter;
import com.ai.cloud.skywalking.analysis.model.ChainNode;
import com.ai.cloud.skywalking.analysis.model.CostMap;
import com.ai.cloud.skywalking.analysis.model.SpanEntry;
import com.ai.cloud.skywalking.protocol.Span;
public abstract class SpanNodeProcessFilter {
@ -11,11 +10,13 @@ public abstract class SpanNodeProcessFilter {
public abstract void doFilter(SpanEntry spanEntry, ChainNode node, CostMap costMap);
public SpanNodeProcessFilter getNextProcessChain() {
return nextProcessChain;
protected void doNext(SpanEntry spanEntry, ChainNode node, CostMap costMap){
if(nextProcessChain != null){
nextProcessChain.doFilter(spanEntry, node, costMap);
}
}
public void setNextProcessChain(SpanNodeProcessFilter nextProcessChain) {
void setNextProcessChain(SpanNodeProcessFilter nextProcessChain) {
this.nextProcessChain = nextProcessChain;
}
}

View File

@ -11,8 +11,6 @@ public class AppendBusinessKeyFilter extends SpanNodeProcessFilter {
public void doFilter(SpanEntry spanEntry, ChainNode node, CostMap costMap) {
node.setViewPoint(node.getViewPoint() + spanEntry.getBusinessKey());
if (getNextProcessChain() != null) {
getNextProcessChain().doFilter(spanEntry, node, costMap);
}
this.doNext(spanEntry, node, costMap);
}
}

View File

@ -17,8 +17,6 @@ public class CopyAttrFilter extends SpanNodeProcessFilter {
node.setUserId(spanEntry.getUserId());
node.setBusinessKey(spanEntry.getBusinessKey());
if (getNextProcessChain() != null) {
getNextProcessChain().doFilter(spanEntry, node, costMap);
}
this.doNext(spanEntry, node, costMap);
}
}

View File

@ -17,8 +17,6 @@ public class ProcessCostTimeFilter extends SpanNodeProcessFilter {
costMap.put(spanEntry.getParentLevelId(), subNodeCost);
if (getNextProcessChain() != null) {
getNextProcessChain().doFilter(spanEntry, node, costMap);
}
this.doNext(spanEntry, node, costMap);
}
}

View File

@ -16,8 +16,6 @@ public class ReplaceAddressFilter extends SpanNodeProcessFilter {
String viewPoint = spanEntry.getViewPoint().replaceAll(IP_PORT_REGEX, spanEntry.getApplicationId());
node.setViewPoint(viewPoint);
if (getNextProcessChain() != null) {
getNextProcessChain().doFilter(spanEntry, node, costMap);
}
this.doNext(spanEntry, node, costMap);
}
}

View File

@ -16,8 +16,6 @@ public class TokenGenerateFilter extends SpanNodeProcessFilter {
node.setNodeToken(nodeToken);
if (getNextProcessChain() != null) {
getNextProcessChain().doFilter(spanEntry, node, costMap);
}
this.doNext(spanEntry, node, costMap);
}
}