提交 c90b484f 编写于 作者: A ascrutae

修复bug

上级 e2acf567
......@@ -3,6 +3,7 @@ package com.ai.cloud.skywalking.analysis.chainbuild.entity;
import com.ai.cloud.skywalking.analysis.chainbuild.po.ChainInfo;
import com.ai.cloud.skywalking.analysis.chainbuild.po.ChainNode;
import com.ai.cloud.skywalking.analysis.chainbuild.util.HBaseUtil;
import com.ai.cloud.skywalking.analysis.chainbuild.util.TokenGenerator;
import com.google.gson.Gson;
import org.apache.hadoop.hbase.client.Put;
......@@ -33,14 +34,12 @@ public class CallChainTree {
combineChains = new HashMap<String, ChainInfo>();
nodes = new HashMap<String, CallChainTreeNode>();
this.callEntrance = callEntrance;
this.treeId = TokenGenerator.generateTreeToken(callEntrance);
}
public static CallChainTree load(String callEntrance) throws IOException {
CallChainTree chain = HBaseUtil.loadCallChainTree(callEntrance);
chain.hasBeenMergedChainIds.addAll(HBaseUtil.loadHasBeenMergeChainIds(callEntrance));
if (chain == null) {
chain = new CallChainTree(callEntrance);
}
return chain;
}
......
......@@ -24,13 +24,16 @@ public class CallChainTreeNode {
public CallChainTreeNode(ChainNode node) {
this.traceLevelId = node.getTraceLevelId();
chainNodeContainer.put(node.getNodeToken(), new ChainNodeSpecificMinSummary());
chainNodeContainer = new HashMap<String, ChainNodeSpecificMinSummary>();
this.viewPointId = node.getViewPoint();
}
public CallChainTreeNode(String originData) {
JsonObject jsonObject = (JsonObject) new JsonParser().parse(originData);
traceLevelId = jsonObject.get("traceLevelId").getAsString();
viewPointId = jsonObject.get("viewPointId").getAsString();
// 每次都只load对应的节点统计结果,不全部load出来
chainNodeContainer = new HashMap<String, ChainNodeSpecificMinSummary>();
}
public void mergeIfNess(ChainNode node) {
......@@ -46,11 +49,11 @@ public class CallChainTreeNode {
String keyOfMinSummaryTable = generateKeyOfMinSummaryTable(treeId, calendar);
ChainNodeSpecificMinSummary minSummary = chainNodeContainer.get(keyOfMinSummaryTable);
if (minSummary == null) {
minSummary = HBaseUtil.loadSpecificMinSummary(keyOfMinSummaryTable, node.getNodeToken());
minSummary = HBaseUtil.loadSpecificMinSummary(keyOfMinSummaryTable, node.getTraceLevelId());
chainNodeContainer.put(keyOfMinSummaryTable, minSummary);
}
minSummary.summary(String.valueOf(calendar.get(Calendar.MINUTE) + 1), node);
minSummary.summary(String.valueOf(calendar.get(Calendar.MINUTE)), node);
}
private String generateKeyOfMinSummaryTable(String treeId, Calendar calendar) {
......@@ -68,7 +71,7 @@ public class CallChainTreeNode {
}
public void saveSummaryResultToHBase() throws IOException, InterruptedException {
List<Put> puts = new ArrayList<Put>();
List<Put> puts = new ArrayList<Put>();
for (Map.Entry<String, ChainNodeSpecificMinSummary> entry : chainNodeContainer.entrySet()) {
Put put = new Put(entry.getKey().getBytes());
put.addColumn(HBaseTableMetaData.TABLE_CHAIN_ONE_MINUTE_SUMMARY.COLUMN_FAMILY_NAME.getBytes()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册