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()) {