diff --git a/skywalking-analysis/pom.xml b/skywalking-analysis/pom.xml
index ff830f4d5..88d2188c2 100644
--- a/skywalking-analysis/pom.xml
+++ b/skywalking-analysis/pom.xml
@@ -54,6 +54,11 @@
mysql-connector-java
5.1.38
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.2
+
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildMapper.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildMapper.java
index fdcaa2f72..c02a7f3bf 100644
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildMapper.java
+++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildMapper.java
@@ -16,15 +16,16 @@ 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 org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.io.IOException;
import java.util.*;
public class ChainBuildMapper extends TableMapper {
- private Logger logger = LoggerFactory.getLogger(ChainBuildMapper.class);
+ private Logger logger = LogManager.getLogger(ChainBuildMapper.class);
@Override
protected void setup(Context context) throws IOException,
@@ -56,9 +57,8 @@ public class ChainBuildMapper extends TableMapper {
logger.debug("convert tid[" + Bytes.toString(key.get())
+ "] to chain with cid[" + chainInfo.getCID() + "].");
context.write(
- new Text(chainInfo.getEntranceNodeToken()), new Text(new Gson().toJson(chainInfo)));
+ new Text(chainInfo.getCallEntrance()), new Text(new Gson().toJson(chainInfo)));
} catch (Exception e) {
- e.printStackTrace();
logger.error("Failed to mapper call chain[" + key.toString() + "]",
e);
}
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildReducer.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildReducer.java
index aa9cc6208..8ec60a9c9 100644
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildReducer.java
+++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/ChainBuildReducer.java
@@ -9,14 +9,14 @@ import org.apache.hadoop.hbase.util.Bytes;
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 org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.util.Iterator;
public class ChainBuildReducer extends Reducer {
- private Logger logger = LoggerFactory.getLogger(ChainBuildReducer.class);
+ private Logger logger = LogManager.getLogger(ChainBuildReducer.class);
@Override
protected void setup(Context context) throws IOException,
@@ -33,7 +33,8 @@ public class ChainBuildReducer extends Reducer {
public void doReduceAction(String key, Iterator chainInfoIterator)
throws IOException, InterruptedException {
CallChainTree chainTree = CallChainTree.load(key);
- SpecificTimeCallTreeMergedChainIdContainer container = new SpecificTimeCallTreeMergedChainIdContainer(chainTree.getTreeToken());
+ SpecificTimeCallTreeMergedChainIdContainer container
+ = new SpecificTimeCallTreeMergedChainIdContainer(chainTree.getTreeToken());
while (chainInfoIterator.hasNext()) {
String callChainData = chainInfoIterator.next().toString();
ChainInfo chainInfo = null;
@@ -42,7 +43,6 @@ public class ChainBuildReducer extends Reducer {
container.addMergedChainIfNotContain(chainInfo);
chainTree.summary(chainInfo);
} catch (Exception e) {
- e.printStackTrace();
logger.error(
"Failed to summary call chain, maybe illegal data:"
+ callChainData, e);
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTree.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTree.java
index c055e2e8e..cfb4d938d 100644
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTree.java
+++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTree.java
@@ -7,8 +7,12 @@ import java.util.Map;
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.TokenGenerator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
public class CallChainTree {
+ private Logger logger = LogManager.getLogger(CallChainTree.class);
+
private String callEntrance;
private String treeToken;
@@ -23,6 +27,7 @@ public class CallChainTree {
nodes = new HashMap();
this.callEntrance = callEntrance;
this.treeToken = TokenGenerator.generateTreeToken(callEntrance);
+ logger.info("CallEntrance:[{}] == TreeToken[{}]",callEntrance, treeToken);
}
public static CallChainTree load(String callEntrance) throws IOException {
diff --git a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTreeNode.java b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTreeNode.java
index 0a635c76a..47771b9bf 100644
--- a/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTreeNode.java
+++ b/skywalking-analysis/src/main/java/com/ai/cloud/skywalking/analysis/chainbuild/entity/CallChainTreeNode.java
@@ -6,6 +6,8 @@ import com.ai.cloud.skywalking.analysis.config.HBaseTableMetaData;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import org.apache.hadoop.hbase.client.Put;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.util.*;
@@ -17,6 +19,8 @@ import java.util.*;
* @author wusheng
*/
public class CallChainTreeNode {
+ private Logger logger = LogManager.getLogger(CallChainTreeNode.class);
+
@Expose
private String traceLevelId;
@Expose
diff --git a/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java b/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java
index 2055a398a..325d4b3a8 100644
--- a/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java
+++ b/skywalking-analysis/src/test/java/com/ai/cloud/skywalking/analysis/mapper/CallChainMapperTest.java
@@ -62,46 +62,11 @@ public class CallChainMapperTest {
return entries;
}
- @Test
- public void testDataIsCorrect() throws IOException, ParseException {
- List chainInfos = selectSpans();
- Iterator chainInfoIterator = chainInfos.iterator();
- while (chainInfoIterator.hasNext()) {
- ChainInfo chainInfo = chainInfoIterator.next();
- if (!"http://m.aisse.asiainfo.com/aisseWorkPage/workPay".equals(chainInfo.getCallEntrance())) {
- chainInfoIterator.remove();
- }
- }
-
- Map> result = new HashMap<>();
- for (int i = 0; i < chainInfos.size(); i++) {
- for (ChainNode chainNode :chainInfos.get(i).getNodes()){
- if ("0".equals(chainNode.getTraceLevelId())){
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date(chainNode.getStartDate()));
- List chainNodes = result.get(getKey(calendar));
- if (chainNodes == null){
- chainNodes = new ArrayList<>();
- }
- chainNodes.add(chainNode);
- result.put(getKey(calendar), chainNodes);
- }
- }
- }
-
- System.out.println(result.size());
- }
-
- private String getKey(Calendar calendar) {
- return calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH)) + "-"
- + calendar.get(Calendar.DAY_OF_MONTH) + " " + calendar.get(Calendar.HOUR) + ":00:00";
- }
-
public static List selectSpans() throws IOException, ParseException {
List chainInfos = new ArrayList();
Table table = connection.getTable(TableName.valueOf(HBaseTableMetaData.TABLE_CALL_CHAIN.TABLE_NAME));
Scan scan = new Scan();
- scan.setTimeRange(new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss").parse("2015-12-09/18:44:48").getTime(), new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss").parse("2016-03-09/18:44:48").getTime());
+ scan.setTimeRange(new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss").parse("2016-01-10/11:55:48").getTime(), new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss").parse("2016-02-10/11:55:48").getTime());
ResultScanner resultScanner = table.getScanner(scan);
Iterator resultIterator = resultScanner.iterator();
while (resultIterator.hasNext()) {