1.修改了部分类名和代码结构。
This commit is contained in:
parent
8d404e71b1
commit
dbdb9ee43d
|
|
@ -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<String, SummaryResult> summerResultMap;
|
||||
|
||||
public static ChainNodeSpecificTimeWindowSummary newInstance(String traceLevelId){
|
||||
ChainNodeSpecificTimeWindowSummary cns = new ChainNodeSpecificTimeWindowSummary();
|
||||
cns.traceLevelId = traceLevelId;
|
||||
return cns;
|
||||
}
|
||||
|
||||
private ChainNodeSpecificTimeWindowSummary(){
|
||||
summerResultMap = new HashMap<String, SummaryResult>();
|
||||
}
|
||||
|
||||
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(),
|
||||
|
|
@ -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<String, ChainNodeSpecificTimeWindowSummary> chainNodeSummaryResultMap;
|
||||
|
||||
public ChainSpecificTimeWindowSummary() {
|
||||
chainNodeSummaryResultMap = new HashMap<String, ChainNodeSpecificTimeWindowSummary>();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<String, ChainNodeSummaryResult> chainNodeSummaryResultMap;
|
||||
|
||||
public ChainSummaryResult() {
|
||||
chainNodeSummaryResultMap = new HashMap<String, ChainNodeSummaryResult>();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,20 +4,20 @@ import java.util.Map;
|
|||
|
||||
public class Summary {
|
||||
|
||||
private Map<String, ChainSummaryResult> summaryResultMap;
|
||||
private Map<String, ChainSpecificTimeWindowSummary> 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));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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())));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue