1.优化CostTime代码结构。
This commit is contained in:
parent
bf98c2fd0a
commit
b68c041142
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue