From b68c041142b45afb015be09ef753538715733409 Mon Sep 17 00:00:00 2001 From: wusheng Date: Mon, 18 Jan 2016 15:15:51 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96CostTime=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/impl/ProcessCostTimeFilter.java | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/filter/impl/ProcessCostTimeFilter.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/filter/impl/ProcessCostTimeFilter.java index cd1190dfe..fcca43874 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/filter/impl/ProcessCostTimeFilter.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/filter/impl/ProcessCostTimeFilter.java @@ -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)); + } + } }