diff --git a/skywalking-analysis/skywalking-analysis.iml b/skywalking-analysis/skywalking-analysis.iml
deleted file mode 100644
index aa8205c55..000000000
--- a/skywalking-analysis/skywalking-analysis.iml
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainMapper.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainMapper.java
deleted file mode 100644
index 14248280e..000000000
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainMapper.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.ai.cloud.skywalking.analysis.categorize2chain;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.client.Result;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.hbase.mapreduce.TableMapper;
-import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.ai.cloud.skywalking.analysis.categorize2chain.filter.SpanNodeProcessChain;
-import com.ai.cloud.skywalking.analysis.categorize2chain.filter.SpanNodeProcessFilter;
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainInfo;
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainNode;
-import com.ai.cloud.skywalking.analysis.categorize2chain.util.HBaseUtil;
-import com.ai.cloud.skywalking.analysis.categorize2chain.util.SubLevelSpanCostCounter;
-import com.ai.cloud.skywalking.analysis.chainbuild.util.VersionIdentifier;
-import com.ai.cloud.skywalking.analysis.config.ConfigInitializer;
-import com.ai.cloud.skywalking.protocol.Span;
-
-public class Categorize2ChainMapper extends TableMapper {
- private Logger logger = LoggerFactory
- .getLogger(Categorize2ChainMapper.class.getName());
-
- @Override
- protected void setup(Context context) throws IOException,
- InterruptedException {
- ConfigInitializer.initialize();
- }
-
- @Override
- protected void map(ImmutableBytesWritable key, Result value, Context context)
- throws IOException, InterruptedException {
- if(!VersionIdentifier.enableAnaylsis(Bytes.toString(key.get()))){
- return;
- }
-
- List spanList = new ArrayList();
- ChainInfo chainInfo = null;
- try {
- for (Cell cell : value.rawCells()) {
- Span span = new Span(Bytes.toString(cell.getValueArray(),
- cell.getValueOffset(), cell.getValueLength()));
- spanList.add(span);
- }
-
- chainInfo = spanToChainInfo(Bytes.toString(key.get()), spanList);
- logger.info("Success convert span to chain info...."
- + chainInfo.getCID() + " TraceId : " + Bytes.toString(key.get()));
- context.write(
- new Text(chainInfo.getUserId() + ":"
- + chainInfo.getEntranceNodeToken()), chainInfo);
- } catch (Exception e) {
- logger.error("Failed to mapper call chain[" + key.toString() + "]",
- e);
- }
- }
-
- public static ChainInfo spanToChainInfo(String key, List spanList) {
- SubLevelSpanCostCounter costMap = new SubLevelSpanCostCounter();
- ChainInfo chainInfo = new ChainInfo();
- Collections.sort(spanList, new Comparator() {
- @Override
- public int compare(Span span1, Span span2) {
- String span1TraceLevel = span1.getParentLevel() + "."
- + span1.getLevelId();
- String span2TraceLevel = span2.getParentLevel() + "."
- + span2.getLevelId();
- return span1TraceLevel.compareTo(span2TraceLevel);
- }
- });
-
- Map spanEntryMap = mergeSpanDataSet(spanList);
- for (Map.Entry entry : spanEntryMap.entrySet()) {
- ChainNode chainNode = new ChainNode();
- SpanNodeProcessFilter filter = SpanNodeProcessChain
- .getProcessChainByCallType(entry.getValue().getSpanType());
- filter.doFilter(entry.getValue(), chainNode, costMap);
- chainInfo.addNodes(chainNode);
- }
-
- chainInfo.generateChainToken();
- HBaseUtil.saveCidTidMapping(key, chainInfo);
- return chainInfo;
- }
-
- private static Map mergeSpanDataSet(List spanList) {
- Map spanEntryMap = new LinkedHashMap();
- for (int i = spanList.size() - 1; i >= 0; i--) {
- Span span = spanList.get(i);
- SpanEntry spanEntry = spanEntryMap.get(span.getParentLevel() + "."
- + span.getLevelId());
- if (spanEntry == null) {
- spanEntry = new SpanEntry();
- spanEntryMap.put(
- span.getParentLevel() + "." + span.getLevelId(),
- spanEntry);
- }
- spanEntry.setSpan(span);
- }
- return spanEntryMap;
- }
-}
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainReducer.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainReducer.java
deleted file mode 100644
index 1623ca84a..000000000
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/Categorize2ChainReducer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.ai.cloud.skywalking.analysis.categorize2chain;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.apache.hadoop.io.IntWritable;
-import org.apache.hadoop.io.Text;
-import org.apache.hadoop.mapreduce.Reducer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.ai.cloud.skywalking.analysis.categorize2chain.entity.ChainRelationship;
-import com.ai.cloud.skywalking.analysis.categorize2chain.entity.ChainSummaryWithoutRelationship;
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainInfo;
-import com.ai.cloud.skywalking.analysis.categorize2chain.util.HBaseUtil;
-import com.ai.cloud.skywalking.analysis.config.ConfigInitializer;
-
-public class Categorize2ChainReducer extends Reducer {
- private static Logger logger = LoggerFactory.getLogger(Categorize2ChainReducer.class.getName());
-
- @Override
- protected void setup(Context context) throws IOException,
- InterruptedException {
- ConfigInitializer.initialize();
- }
-
- @Override
- protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException {
- int totalCount = reduceAction(key.toString(), values.iterator());
- context.write(new Text(key.toString()), new IntWritable(totalCount));
- }
-
- public static int reduceAction(String key, Iterator chainInfoIterator) throws IOException, InterruptedException {
- int totalCount = 0;
- try {
- ChainRelationship chainRelate = HBaseUtil.loadCallChainRelationship(key.toString());
- ChainSummaryWithoutRelationship summary = new ChainSummaryWithoutRelationship();
- while (chainInfoIterator.hasNext()) {
- ChainInfo chainInfo = chainInfoIterator.next();
- try {
- chainRelate.categoryChain(chainInfo);
- summary.summary(chainInfo);
- } catch (Exception e) {
- continue;
- }
- totalCount++;
- }
-
- chainRelate.save();
- summary.save();
- } catch (Exception e) {
- logger.error("Failed to reduce key[" + key + "]", e);
- }
-
- return totalCount;
- }
-}
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/CategorizedChainInfo.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/CategorizedChainInfo.java
deleted file mode 100644
index 48f7ac12f..000000000
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/CategorizedChainInfo.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.ai.cloud.skywalking.analysis.categorize2chain.entity;
-
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainInfo;
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainNode;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import com.google.gson.reflect.TypeToken;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.regex.Pattern;
-
-public class CategorizedChainInfo {
- private String cid;
- private String chainFullToken;
-
- private List children_Token;
-
- public CategorizedChainInfo(ChainInfo chainInfo) {
- cid = chainInfo.getCID();
-
- StringBuilder stringBuilder = new StringBuilder();
- boolean flag = false;
- for (ChainNode chainNode : chainInfo.getNodes()) {
- if (flag) {
- stringBuilder.append(";");
- }
- stringBuilder.append(chainNode.getTraceLevelId() + "-" + chainNode.getNodeToken());
- flag = true;
- }
-
- chainFullToken = stringBuilder.toString();
- children_Token = new ArrayList();
- }
-
- public CategorizedChainInfo(String value) {
- JsonObject jsonObject = (JsonObject) new JsonParser().parse(value);
- cid = jsonObject.get("chainToken").getAsString();
- chainFullToken = jsonObject.get("chainFullToken").getAsString();
- children_Token = new Gson().fromJson(jsonObject.get("children_Token"),
- new TypeToken>() {
- }.getType());
- }
-
- public String getChainFullToken() {
- return chainFullToken;
- }
-
- public boolean isContained(UncategorizeChainInfo uncategorizeChainInfo) {
- Pattern pattern = Pattern.compile(uncategorizeChainInfo.getNodeRegEx());
- return pattern.matcher(this.chainFullToken).find();
- }
-
- public static void main(String[] args) {
- System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(1453507835957L)));
- }
-
- public boolean isAlreadyContained(UncategorizeChainInfo uncategorizeChainInfo) {
- return children_Token.contains(uncategorizeChainInfo.getCID());
- }
-
- public void add(UncategorizeChainInfo uncategorizeChainInfo) {
- children_Token.add(uncategorizeChainInfo.getCID());
- }
-
- @Override
- public String toString() {
- return new Gson().toJson(this);
- }
-
- public List getChildren_Token() {
- return children_Token;
- }
-}
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/ChainNodeSpecificTimeWindowSummary.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/ChainNodeSpecificTimeWindowSummary.java
deleted file mode 100644
index 05e81815a..000000000
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/categorize2chain/entity/ChainNodeSpecificTimeWindowSummary.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.ai.cloud.skywalking.analysis.categorize2chain.entity;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.ai.cloud.skywalking.analysis.categorize2chain.po.ChainNode;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import com.google.gson.reflect.TypeToken;
-
-public class ChainNodeSpecificTimeWindowSummary {
- public static final long INTERVAL = 1L;
-
- private String traceLevelId;
- private String nodeToken;
- // key : 分钟
- private Map summerValueMap;
-
- public static ChainNodeSpecificTimeWindowSummary newInstance(String traceLevelId, String nodeToken) {
- ChainNodeSpecificTimeWindowSummary cns = new ChainNodeSpecificTimeWindowSummary();
- cns.traceLevelId = traceLevelId;
- cns.nodeToken = nodeToken;
- return cns;
- }
-
- private ChainNodeSpecificTimeWindowSummary() {
- summerValueMap = new HashMap();
- }
-
- public ChainNodeSpecificTimeWindowSummary(String value) {
- JsonObject jsonObject = (JsonObject) new JsonParser().parse(value);
- traceLevelId = jsonObject.get("traceLevelId").getAsString();
- summerValueMap = new Gson().fromJson(jsonObject.get("summerValueMap").toString(),
- new TypeToken