From da2116337bbe1ed16e86c5851ead988247cce274 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Thu, 26 May 2016 07:51:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8A=82=E7=82=B9=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E7=BB=93=E6=9E=9C=E4=B8=BA0=E7=9A=84=E4=B8=8D?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/dao/impl/CallChainTreeDao.java | 17 +++++++++++++++-- .../skywalking/web/dto/CallChainTreeNode.java | 11 ++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/CallChainTreeDao.java b/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/CallChainTreeDao.java index 840a506b5..43f490e09 100644 --- a/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/CallChainTreeDao.java +++ b/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/CallChainTreeDao.java @@ -75,11 +75,24 @@ public class CallChainTreeDao implements ICallChainTreeDao { String qualifierStr = Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength()); String valueStr = Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()); - CallChainTreeNode callChainTreeNode = new CallChainTreeNode(qualifierStr, valueStr, loadKey); - chainTree.addNode(callChainTreeNode); + AnlyResult anlyResult = buildAnlyResult(valueStr, loadKey); + if (anlyResult == null) { + continue; + } else { + CallChainTreeNode callChainTreeNode = new CallChainTreeNode(qualifierStr, anlyResult); + chainTree.addNode(callChainTreeNode); + } } return chainTree; } + + private AnlyResult buildAnlyResult(String valueStr, String loadKey) { + JsonObject jsonObject = (JsonObject) new JsonParser().parse(valueStr); + Map resultMap = new Gson().fromJson(jsonObject.getAsJsonObject("summaryValueMap"), + new TypeToken>() { + }.getType()); + return resultMap.get(loadKey); + } } diff --git a/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dto/CallChainTreeNode.java b/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dto/CallChainTreeNode.java index eb9da8823..e9a816c8f 100644 --- a/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dto/CallChainTreeNode.java +++ b/skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dto/CallChainTreeNode.java @@ -20,19 +20,12 @@ public class CallChainTreeNode { private String viewPointStr; private AnlyResult anlyResult; - public CallChainTreeNode(String qualifierStr, String valueStr, String loadKey) { + public CallChainTreeNode(String qualifierStr, AnlyResult anlyResult) { traceLevelId = qualifierStr.substring(0, qualifierStr.indexOf("@")); viewPoint = qualifierStr.substring(qualifierStr.indexOf("@") + 1); viewPointStr = viewPoint; nodeToken = TokenGenerator.generate(traceLevelId + ":" + viewPoint); - JsonObject jsonObject = (JsonObject) new JsonParser().parse(valueStr); - Map resultMap = new Gson().fromJson(jsonObject.getAsJsonObject("summaryValueMap"), - new TypeToken>() { - }.getType()); - anlyResult = resultMap.get(loadKey); - if (anlyResult == null) { - anlyResult = new AnlyResult(); - } + this.anlyResult = anlyResult; } public String getTraceLevelId() {