1.优化CostTime代码结构。

This commit is contained in:
wusheng 2016-01-18 15:15:51 +08:00
parent bf98c2fd0a
commit b68c041142
1 changed files with 27 additions and 23 deletions

View File

@ -6,31 +6,35 @@ import com.ai.cloud.skywalking.analysis.model.CostMap;
import com.ai.cloud.skywalking.analysis.model.SpanEntry;
public class ProcessCostTimeFilter extends SpanNodeProcessFilter {
@Override
public void doFilter(SpanEntry spanEntry, ChainNode node, CostMap costMap) {
long subNodeCost = spanEntry.getCost();
node.setCost(spanEntry.getCost());
@Override
public void doFilter(SpanEntry spanEntry, ChainNode node, CostMap costMap) {
node.setCost(spanEntry.getCost());
this.saveCostAsSubNodeCost(spanEntry, node, costMap);
this.computeChainNodeCost(costMap, node);
if (costMap.exists(spanEntry.getParentLevelId())) {
subNodeCost += costMap.get(spanEntry.getParentLevelId());
}
this.doNext(spanEntry, node, costMap);
}
costMap.put(spanEntry.getParentLevelId(), subNodeCost);
this.computeChainNodeCost(costMap, node);
private void saveCostAsSubNodeCost(SpanEntry spanEntry, ChainNode node,
CostMap costMap) {
long subNodeCost = spanEntry.getCost();
if (costMap.exists(spanEntry.getParentLevelId())) {
subNodeCost += costMap.get(spanEntry.getParentLevelId());
}
this.doNext(spanEntry, node, costMap);
}
private void computeChainNodeCost(CostMap costMap, ChainNode node) {
String levelId = node.getParentLevelId();
if (levelId != null && levelId.length() > 0) {
levelId += ".";
}
levelId += node.getLevelId() + "";
costMap.put(spanEntry.getParentLevelId(), subNodeCost);
}
if (costMap.exists(levelId)) {
node.setCost(node.getCost() - costMap.get(levelId));
}
}
private void computeChainNodeCost(CostMap costMap, ChainNode node) {
String levelId = node.getParentLevelId();
if (levelId != null && levelId.length() > 0) {
levelId += ".";
}
levelId += node.getLevelId() + "";
if (costMap.exists(levelId)) {
node.setCost(node.getCost() - costMap.get(levelId));
}
}
}