From dbdb9ee43dcb4d44937b439e87635de38c9690bf Mon Sep 17 00:00:00 2001 From: wusheng Date: Wed, 20 Jan 2016 14:58:46 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E5=90=8D=E5=92=8C=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...> ChainNodeSpecificTimeWindowSummary.java} | 15 ++++++- .../model/ChainSpecificTimeWindowSummary.java | 45 +++++++++++++++++++ .../analysis/model/ChainSummaryResult.java | 41 ----------------- .../skywalking/analysis/model/Summary.java | 12 ++--- .../skywalking/analysis/util/HBaseUtil.java | 12 ++--- 5 files changed, 70 insertions(+), 55 deletions(-) rename skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/{ChainNodeSummaryResult.java => ChainNodeSpecificTimeWindowSummary.java} (74%) create mode 100644 skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSpecificTimeWindowSummary.java delete mode 100644 skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSummaryResult.java diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSummaryResult.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSpecificTimeWindowSummary.java similarity index 74% rename from skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSummaryResult.java rename to skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSpecificTimeWindowSummary.java index 55c177195..5f4349285 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSummaryResult.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainNodeSpecificTimeWindowSummary.java @@ -4,15 +4,26 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import java.util.HashMap; import java.util.Map; -public class ChainNodeSummaryResult { +public class ChainNodeSpecificTimeWindowSummary { private String traceLevelId; private Map summerResultMap; + + public static ChainNodeSpecificTimeWindowSummary newInstance(String traceLevelId){ + ChainNodeSpecificTimeWindowSummary cns = new ChainNodeSpecificTimeWindowSummary(); + cns.traceLevelId = traceLevelId; + return cns; + } + + private ChainNodeSpecificTimeWindowSummary(){ + summerResultMap = new HashMap(); + } - public ChainNodeSummaryResult(String value) { + public ChainNodeSpecificTimeWindowSummary(String value) { JsonObject jsonObject = new Gson().fromJson(value, JsonObject.class); traceLevelId = jsonObject.get("traceLevelId").getAsString(); summerResultMap = new Gson().fromJson(jsonObject.get("summerResultMap").getAsString(), diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSpecificTimeWindowSummary.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSpecificTimeWindowSummary.java new file mode 100644 index 000000000..0de664934 --- /dev/null +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSpecificTimeWindowSummary.java @@ -0,0 +1,45 @@ +package com.ai.cloud.skywalking.analysis.model; + +import com.ai.cloud.skywalking.analysis.util.HBaseUtil; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class ChainSpecificTimeWindowSummary { + + private Map chainNodeSummaryResultMap; + + public ChainSpecificTimeWindowSummary() { + chainNodeSummaryResultMap = new HashMap(); + } + + public static ChainSpecificTimeWindowSummary load(String cid_time) { + ChainSpecificTimeWindowSummary result = null; + try { + result = HBaseUtil.selectChainSummaryResult(cid_time); + } catch (IOException e) { + e.printStackTrace(); + } + + if (result == null) { + result = new ChainSpecificTimeWindowSummary(); + } + return result; + } + + public void summaryResult(ChainInfo chainInfo) { + for (ChainNode node : chainInfo.getNodes()) { + String tlid = node.getTraceLevelId(); + ChainNodeSpecificTimeWindowSummary chainNodeSummaryResult = chainNodeSummaryResultMap.get(tlid); + if(chainNodeSummaryResult == null){ + chainNodeSummaryResult = ChainNodeSpecificTimeWindowSummary.newInstance(tlid); + } + chainNodeSummaryResult.summary(node); + } + } + + public void addNodeSummaryResult(ChainNodeSpecificTimeWindowSummary chainNodeSummaryResult) { + chainNodeSummaryResultMap.put(chainNodeSummaryResult.getTraceLevelId(), chainNodeSummaryResult); + } +} diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSummaryResult.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSummaryResult.java deleted file mode 100644 index 3305a8800..000000000 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/ChainSummaryResult.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.ai.cloud.skywalking.analysis.model; - -import com.ai.cloud.skywalking.analysis.util.HBaseUtil; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class ChainSummaryResult { - - private Map chainNodeSummaryResultMap; - - public ChainSummaryResult() { - chainNodeSummaryResultMap = new HashMap(); - } - - public static ChainSummaryResult load(String id) { - ChainSummaryResult result = null; - try { - result = HBaseUtil.selectChainSummaryResult(id); - } catch (IOException e) { - e.printStackTrace(); - } - - if (result == null) { - result = new ChainSummaryResult(); - } - return result; - } - - public void summaryResult(ChainInfo chainInfo) { - for (ChainNode node : chainInfo.getNodes()) { - ChainNodeSummaryResult chainNodeSummaryResult = chainNodeSummaryResultMap.get(node.getTraceLevelId()); - chainNodeSummaryResult.summary(node); - } - } - - public void addNodeSummaryResult(ChainNodeSummaryResult chainNodeSummaryResult) { - chainNodeSummaryResultMap.put(chainNodeSummaryResult.getTraceLevelId(), chainNodeSummaryResult); - } -} diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/Summary.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/Summary.java index a3d8cdafb..8c06763b7 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/Summary.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/model/Summary.java @@ -4,20 +4,20 @@ import java.util.Map; public class Summary { - private Map summaryResultMap; + private Map summaryResultMap; public void summary(ChainInfo chainInfo) { - String key = generateKey(chainInfo); - ChainSummaryResult chainSummaryResult = summaryResultMap.get(key); + String csk = generateChainSummaryKey(chainInfo); + ChainSpecificTimeWindowSummary chainSummaryResult = summaryResultMap.get(csk); if (chainSummaryResult == null) { - chainSummaryResult = ChainSummaryResult.load(key); - summaryResultMap.put(key, chainSummaryResult); + chainSummaryResult = ChainSpecificTimeWindowSummary.load(csk); + summaryResultMap.put(csk, chainSummaryResult); } chainSummaryResult.summaryResult(chainInfo); } - private String generateKey(ChainInfo chainInfo) { + private String generateChainSummaryKey(ChainInfo chainInfo) { return chainInfo.getChainToken() + ":" + (chainInfo.getStartDate() / (1000 * 60 * 60)); } diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/util/HBaseUtil.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/util/HBaseUtil.java index 73069a8be..23d606877 100644 --- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/util/HBaseUtil.java +++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/util/HBaseUtil.java @@ -2,9 +2,9 @@ package com.ai.cloud.skywalking.analysis.util; import com.ai.cloud.skywalking.analysis.config.Config; import com.ai.cloud.skywalking.analysis.model.ChainInfo; -import com.ai.cloud.skywalking.analysis.model.ChainNodeSummaryResult; +import com.ai.cloud.skywalking.analysis.model.ChainNodeSpecificTimeWindowSummary; import com.ai.cloud.skywalking.analysis.model.ChainRelate; -import com.ai.cloud.skywalking.analysis.model.ChainSummaryResult; +import com.ai.cloud.skywalking.analysis.model.ChainSpecificTimeWindowSummary; import com.ai.cloud.skywalking.protocol.Span; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; @@ -91,17 +91,17 @@ public class HBaseUtil { return null; } - public static ChainSummaryResult selectChainSummaryResult(String key) throws IOException { - ChainSummaryResult result = null; + public static ChainSpecificTimeWindowSummary selectChainSummaryResult(String key) throws IOException { + ChainSpecificTimeWindowSummary result = null; //TODO 初始化表 Table table = connection.getTable(TableName.valueOf(Config.HBase.TABLE_CHAIN_INFO)); Get g = new Get(Bytes.toBytes(key)); Result r = table.get(g); for (Cell cell : r.rawCells()) { - result = new ChainSummaryResult(); + result = new ChainSpecificTimeWindowSummary(); if (cell.getValueArray().length > 0) - result.addNodeSummaryResult(new ChainNodeSummaryResult(Bytes.toString(cell.getValueArray(), + result.addNodeSummaryResult(new ChainNodeSpecificTimeWindowSummary(Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()))); }