1.优化node的processChain写法。
This commit is contained in:
parent
1b6e6e95d7
commit
39383c4ad8
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue