diff --git a/README.md b/README.md index e80da3803f5d69200147ec9372a147303bdea715..a2b54426e62fe55727078f94a4a207ff4fc96949 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ CAT监控系统将每次URL、Service的请求内部执行情况都封装为一 ![Alt text](https://raw.github.com/dianping/cat/master/cat-home/src/main/webapp/images/logviewAll02.png) -分布式消息树【一台机器CALL另外一台机器】 +分布式消息树【一台机器调用另外一台机器】 --------------------- ![Alt text](https://raw.github.com/dianping/cat/master/cat-home/src/main/webapp/images/logviewAll03.png) @@ -44,7 +44,9 @@ Quick Started Note: * Linux\Mac 需要对/data/appdatas/cat和/data/applogs/cat有读写权限 * Windows 则是对系统运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限 + #####3、(Optional)如果安装了hadoop集群,需到/data/appdatas/cat/server.xml中配置对应hadoop信息。将localmode设置为false,默认情况下,CAT在开发模式(localmode=true)下工作。 + #####4、运行CAT cd cat-home;mvn jetty:run 然后打开浏览器,输入http://localhost:2281/cat/。 diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java index a81fe0a41d922a1ba2a66b54857c659a35f78104..786c1f3b0b0f3d02cb97e34e2d09440b1a555881 100644 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java +++ b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java @@ -13,9 +13,6 @@ import com.dianping.cat.ServerConfigManager; import com.dianping.cat.abtest.spi.internal.ABTestCodec; import com.dianping.cat.analysis.MessageAnalyzer; import com.dianping.cat.consumer.CatConsumerAdvancedModule; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.advanced.dal.BusinessReportDao; import com.dianping.cat.consumer.advanced.dal.SqltableDao; import com.dianping.cat.consumer.cross.CrossAnalyzer; @@ -24,6 +21,9 @@ import com.dianping.cat.consumer.dependency.DependencyAnalyzer; import com.dianping.cat.consumer.dependency.DependencyDelegate; import com.dianping.cat.consumer.matrix.MatrixAnalyzer; import com.dianping.cat.consumer.matrix.MatrixDelegate; +import com.dianping.cat.consumer.metric.MetricAnalyzer; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.sql.DatabaseParser; import com.dianping.cat.consumer.sql.SqlAnalyzer; import com.dianping.cat.consumer.sql.SqlDelegate; diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricAnalyzer.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricAnalyzer.java similarity index 99% rename from cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricAnalyzer.java rename to cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricAnalyzer.java index 2db9eb58f40fe80dfb99e3316376ac1ed88277e1..b04a2b8f619e4a4c5052c93ae2cba019576af716 100644 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricAnalyzer.java +++ b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricAnalyzer.java @@ -1,4 +1,4 @@ -package com.dianping.cat.consumer.advanced; +package com.dianping.cat.consumer.metric; import java.util.Date; import java.util.HashMap; diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricConfigManager.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java similarity index 97% rename from cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricConfigManager.java rename to cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java index b6e6e5ea67eabae9f045189416fbec14457a06bf..367d4d26ef312406dc021fcde82a08e1da45dac6 100644 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricConfigManager.java +++ b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java @@ -1,4 +1,4 @@ -package com.dianping.cat.consumer.advanced; +package com.dianping.cat.consumer.metric; import java.io.IOException; import java.util.ArrayList; @@ -24,7 +24,7 @@ import com.dianping.cat.Cat; import com.dianping.cat.advanced.metric.config.entity.MetricConfig; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; import com.dianping.cat.advanced.metric.config.transform.DefaultSaxParser; -import com.dianping.cat.consumer.advanced.MetricAnalyzer.ConfigItem; +import com.dianping.cat.consumer.metric.MetricAnalyzer.ConfigItem; import com.dianping.cat.core.config.Config; import com.dianping.cat.core.config.ConfigDao; import com.dianping.cat.core.config.ConfigEntity; @@ -32,7 +32,7 @@ import com.dianping.cat.core.config.ConfigEntity; public class MetricConfigManager implements Initializable, LogEnabled { @Inject - private ConfigDao m_configDao; + protected ConfigDao m_configDao; private int m_configId; diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/ProductLineConfigManager.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/ProductLineConfigManager.java similarity index 98% rename from cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/ProductLineConfigManager.java rename to cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/ProductLineConfigManager.java index 4c21d758b724036c4e737543a7c42c7d4340fd09..ddce207dc355c593643857e51ab5253abef6e181 100644 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/ProductLineConfigManager.java +++ b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/ProductLineConfigManager.java @@ -1,4 +1,4 @@ -package com.dianping.cat.consumer.advanced; +package com.dianping.cat.consumer.metric; import java.io.IOException; import java.util.ArrayList; @@ -34,7 +34,7 @@ import com.dianping.cat.core.config.ConfigEntity; public class ProductLineConfigManager implements Initializable, LogEnabled { @Inject - private ConfigDao m_configDao; + protected ConfigDao m_configDao; private int m_configId; diff --git a/cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml b/cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml index c09eb425dd33cb4063c630c97ae6b667ef228530..608329abf7c10bdd77967b19f280421f0024b360 100644 --- a/cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml +++ b/cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml @@ -215,8 +215,8 @@ - com.dianping.cat.consumer.advanced.MetricConfigManager - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager com.dianping.cat.core.config.ConfigDao @@ -224,8 +224,8 @@ - com.dianping.cat.consumer.advanced.ProductLineConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.core.config.ConfigDao @@ -235,7 +235,7 @@ com.dianping.cat.analysis.MessageAnalyzer metric - com.dianping.cat.consumer.advanced.MetricAnalyzer + com.dianping.cat.consumer.metric.MetricAnalyzer per-lookup @@ -245,10 +245,10 @@ com.dianping.cat.consumer.advanced.dal.BusinessReportDao - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.abtest.spi.internal.ABTestCodec diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java index 3e4ec01919dcabe5f54fa3eca79c271c2c0e58a0..4f80ea88ca5e9897f37376de1bd1606757ef7108 100644 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java @@ -4,7 +4,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; -import com.dianping.cat.consumer.advanced.MetricAnalyzerTest; import com.dianping.cat.consumer.cross.CrossAnalyzerTest; import com.dianping.cat.consumer.cross.CrossInfoTest; import com.dianping.cat.consumer.cross.CrossReportMergerTest; @@ -13,6 +12,9 @@ import com.dianping.cat.consumer.dependency.DependencyReportMergerTest; import com.dianping.cat.consumer.matrix.MatrixAnalyzerTest; import com.dianping.cat.consumer.matrix.MatrixModelTest; import com.dianping.cat.consumer.matrix.MatrixReportMergerTest; +import com.dianping.cat.consumer.metric.MetricAnalyzerTest; +import com.dianping.cat.consumer.metric.MetricConfigManagerTest; +import com.dianping.cat.consumer.metric.ProductLineConfigManagerTest; import com.dianping.cat.consumer.sql.DatabaseParserTest; import com.dianping.cat.consumer.sql.SqlAnalyzerTest; import com.dianping.cat.consumer.sql.SqlParsersTest; @@ -45,7 +47,11 @@ MatrixAnalyzerTest.class, DependencyAnalyzerTest.class, -DependencyReportMergerTest.class +DependencyReportMergerTest.class, + +ProductLineConfigManagerTest.class, + +MetricConfigManagerTest.class }) public class AllTests { diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/MockLog.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/MockLog.java new file mode 100644 index 0000000000000000000000000000000000000000..8f9277fc93c6cac57a7c03023b6849a59a4b7c6f --- /dev/null +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/MockLog.java @@ -0,0 +1,110 @@ +package com.dianping.cat.consumer; + +import org.codehaus.plexus.logging.Logger; + +public class MockLog implements Logger { + + @Override + public void debug(String message) { + + } + + @Override + public void debug(String message, Throwable throwable) { + + } + + @Override + public boolean isDebugEnabled() { + + return false; + } + + @Override + public void info(String message) { + + } + + @Override + public void info(String message, Throwable throwable) { + + } + + @Override + public boolean isInfoEnabled() { + + return false; + } + + @Override + public void warn(String message) { + + } + + @Override + public void warn(String message, Throwable throwable) { + + } + + @Override + public boolean isWarnEnabled() { + + return false; + } + + @Override + public void error(String message) { + + } + + @Override + public void error(String message, Throwable throwable) { + + } + + @Override + public boolean isErrorEnabled() { + + return false; + } + + @Override + public void fatalError(String message) { + + } + + @Override + public void fatalError(String message, Throwable throwable) { + + } + + @Override + public boolean isFatalErrorEnabled() { + + return false; + } + + @Override + public Logger getChildLogger(String name) { + + return null; + } + + @Override + public int getThreshold() { + + return 0; + } + + @Override + public void setThreshold(int threshold) { + + } + + @Override + public String getName() { + + return null; + } + +} \ No newline at end of file diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/advanced/MetricAnalyzerTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricAnalyzerTest.java similarity index 96% rename from cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/advanced/MetricAnalyzerTest.java rename to cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricAnalyzerTest.java index 67965b5e453a832f35e6f88ab7a3c4a6aee57fcc..03c6bbb537e448a4e41a7e6b5672603a5adade9d 100644 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/advanced/MetricAnalyzerTest.java +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricAnalyzerTest.java @@ -1,4 +1,4 @@ -package com.dianping.cat.consumer.advanced; +package com.dianping.cat.consumer.metric; import java.io.IOException; import java.text.SimpleDateFormat; @@ -24,10 +24,13 @@ import org.unidal.lookup.ComponentTestCase; import com.dianping.cat.Constants; import com.dianping.cat.abtest.spi.internal.DefaultABTestCodec; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricAnalyzer.ConfigItem; import com.dianping.cat.consumer.advanced.dal.BusinessReport; import com.dianping.cat.consumer.advanced.dal.BusinessReportDao; import com.dianping.cat.consumer.company.model.entity.ProductLine; +import com.dianping.cat.consumer.metric.MetricAnalyzer; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.MetricAnalyzer.ConfigItem; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.message.internal.DefaultEvent; import com.dianping.cat.message.internal.DefaultMetric; diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricConfigManagerTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricConfigManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..45870234b3aa81b9c36ccb14d3ed4b161e711679 --- /dev/null +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricConfigManagerTest.java @@ -0,0 +1,143 @@ +package com.dianping.cat.consumer.metric; + +import java.util.Date; +import java.util.HashSet; +import java.util.List; + +import junit.framework.Assert; + +import org.junit.Test; +import org.unidal.dal.jdbc.DalException; +import org.unidal.dal.jdbc.Readset; +import org.unidal.dal.jdbc.Updateset; + +import com.dianping.cat.advanced.metric.config.entity.MetricConfig; +import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; +import com.dianping.cat.consumer.MockLog; +import com.dianping.cat.consumer.metric.MetricAnalyzer.ConfigItem; +import com.dianping.cat.core.config.Config; +import com.dianping.cat.core.config.ConfigDao; + +public class MetricConfigManagerTest { + + private static int s_storeCount; + + @Test + public void testInitNormal() throws Exception { + MetricConfigManager manager = new MockMetricConfigManager(); + + ((MockMetricConfigManager) manager).setConfigDao(new MockConfigDao1()); + manager.initialize(); + + String domain1 = "domain1"; + String domain2 = "domain2"; + manager.insertIfNotExist(domain1, "type", "metricKey", new ConfigItem()); + + Assert.assertEquals(1, s_storeCount); + manager.insertIfNotExist(domain1, "type", "metricKey", new ConfigItem()); + Assert.assertEquals(1, s_storeCount); + manager.insertIfNotExist(domain2, "type", "metricKey", new ConfigItem()); + Assert.assertEquals(2, s_storeCount); + manager.insertMetricItemConfig(new MetricItemConfig()); + Assert.assertEquals(3, s_storeCount); + + MetricItemConfig item = manager.queryMetricItemConfig(manager.buildMetricKey(domain1, "type", "metricKey")); + Assert.assertEquals(true, item != null); + + manager.deleteDomainConfig(manager.buildMetricKey(domain1, "type", "metricKey")); + Assert.assertEquals(4, s_storeCount); + Assert.assertEquals(2, manager.getMetricConfig().getMetricItemConfigs().size()); + + HashSet hashSet = new HashSet(); + hashSet.add(domain1); + hashSet.add(domain2); + List sets = manager.queryMetricItemConfigs(hashSet); + Assert.assertEquals(1, sets.size()); + manager.enableLogging(new MockLog()); + manager.refreshMetricConfig(); + Assert.assertEquals(1, manager.getMetricConfig().getMetricItemConfigs().size()); + } + + @Test + public void testInitThrowException() throws Exception { + MetricConfigManager manager = new MockMetricConfigManager(); + + ((MockMetricConfigManager) manager).setConfigDao(new MockConfigDao2()); + manager.enableLogging(new MockLog()); + try { + manager.initialize(); + } catch (Exception e) { + } + MetricConfig config = manager.getMetricConfig(); + Assert.assertEquals(0, config.getMetricItemConfigs().size()); + } + + public static class MockMetricConfigManager extends MetricConfigManager { + + public void setConfigDao(ConfigDao configDao) { + m_configDao = configDao; + } + + } + + public static class MockConfigDao2 extends MockConfigDao1 { + @Override + public Config findByName(String name, Readset readset) throws DalException { + throw new DalException("this is a exception for test"); + } + } + + public static class MockConfigDao1 extends ConfigDao { + + @Override + public Config createLocal() { + return super.createLocal(); + } + + @Override + public int deleteByPK(Config proto) throws DalException { + return 1; + } + + @Override + public Config findByPK(int keyId, Readset readset) throws DalException { + Config config = new Config(); + + config.setId(keyId); + config.setContent(new MetricConfig().toString()); + config.setModifyDate(new Date()); + return config; + } + + @Override + public Config findByName(String name, Readset readset) throws DalException { + Config config = new Config(); + + config.setName(name); + MetricConfig metricConfig = new MetricConfig(); + + MetricItemConfig metricItemConfig = new MetricItemConfig(); + + metricItemConfig.setDomain("domain"); + metricItemConfig.setMetricKey("domain:URL:metricKey"); + metricItemConfig.setType("URL"); + metricItemConfig.setMetricKey("metricKey"); + metricConfig.addMetricItemConfig(metricItemConfig); + config.setContent(metricConfig.toString()); + config.setModifyDate(new Date()); + return config; + } + + @Override + public int insert(Config proto) throws DalException { + return 1; + } + + @Override + public int updateByPK(Config proto, Updateset updateset) throws DalException { + s_storeCount++; + return 1; + } + } + +} diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/ProductLineConfigManagerTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/ProductLineConfigManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..2ef6c0bba7f670104fd374a8820de6bbf5dfc5a7 --- /dev/null +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/ProductLineConfigManagerTest.java @@ -0,0 +1,131 @@ +package com.dianping.cat.consumer.metric; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import junit.framework.Assert; + +import org.junit.Test; +import org.unidal.dal.jdbc.DalException; +import org.unidal.dal.jdbc.DalNotFoundException; +import org.unidal.dal.jdbc.Readset; +import org.unidal.dal.jdbc.Updateset; + +import com.dianping.cat.consumer.MockLog; +import com.dianping.cat.consumer.company.model.entity.Company; +import com.dianping.cat.consumer.company.model.entity.ProductLine; +import com.dianping.cat.core.config.Config; +import com.dianping.cat.core.config.ConfigDao; + +public class ProductLineConfigManagerTest { + + private static int s_storeCount; + + @Test + public void testInitNormal() throws Exception { + ProductLineConfigManager manager = new MockProductLineConfigManager(); + + ((MockProductLineConfigManager) manager).setConfigDao(new MockConfigDao1()); + manager.initialize(); + + ProductLine line1 = new ProductLine("Test1"); + ProductLine line2 = new ProductLine("Test2"); + String[] domains1 = { "domain1", "domain2" }; + String[] domains2 = { "domain3", "domain4" }; + + manager.insertProductLine(line1, domains1); + manager.insertProductLine(line2, domains2); + + Assert.assertEquals(2, s_storeCount); + Assert.assertEquals("Default", manager.queryProductLineByDomain("domain")); + Assert.assertEquals("Test1", manager.queryProductLineByDomain("domain1")); + List pDomains = manager.queryProductLineDomains("Test1"); + Assert.assertEquals(2, pDomains.size()); + Map productLines = manager.queryProductLines(); + + Assert.assertEquals(3, productLines.size()); + + manager.enableLogging(new MockLog()); + manager.refreshProductLineConfig(); + productLines = manager.queryProductLines(); + Assert.assertEquals(1, productLines.size()); + } + + @Test + public void testInitThrowException() throws Exception { + ProductLineConfigManager manager = new MockProductLineConfigManager(); + ((MockProductLineConfigManager) manager).setConfigDao(new MockConfigDao2()); + + try { + manager.initialize(); + } catch (Exception e) { + } + + Company config = manager.getCompany(); + Assert.assertEquals(0, config.getProductLines().size()); + } + + public static class MockProductLineConfigManager extends ProductLineConfigManager { + + public void setConfigDao(ConfigDao configDao) { + m_configDao = configDao; + } + + } + + public static class MockConfigDao2 extends MockConfigDao1 { + @Override + public Config findByName(String name, Readset readset) throws DalNotFoundException { + throw new DalNotFoundException("this is a exception for test"); + } + } + + public static class MockConfigDao1 extends ConfigDao { + + @Override + public Config createLocal() { + return super.createLocal(); + } + + @Override + public int deleteByPK(Config proto) throws DalException { + return 1; + } + + @Override + public Config findByPK(int keyId, Readset readset) throws DalException { + Config config = new Config(); + + config.setId(keyId); + config.setModifyDate(new Date()); + config.setContent(new Company().toString()); + return config; + } + + @Override + public Config findByName(String name, Readset readset) throws DalException { + Config config = new Config(); + + config.setName(name); + Company company = new Company(); + ProductLine productLine = new ProductLine("Test"); + + company.addProductLine(productLine); + config.setContent(company.toString()); + config.setModifyDate(new Date()); + return config; + } + + @Override + public int insert(Config proto) throws DalException { + return 1; + } + + @Override + public int updateByPK(Config proto, Updateset updateset) throws DalException { + s_storeCount++; + return 1; + } + } +} diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/performance/MetricPerformanceTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/performance/MetricPerformanceTest.java index de78ac6b7e467a1adc64f9205f0cafd64fc5871f..8d1e572e7dfd8762841f60df0f3c431675fda417 100644 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/performance/MetricPerformanceTest.java +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/performance/MetricPerformanceTest.java @@ -3,7 +3,7 @@ package com.dianping.cat.consumer.performance; import org.junit.Test; import org.unidal.lookup.ComponentTestCase; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; +import com.dianping.cat.consumer.metric.MetricAnalyzer; import com.dianping.cat.message.Message; import com.dianping.cat.message.internal.MockMessageBuilder; import com.dianping.cat.message.spi.MessageTree; diff --git a/cat-consumer-advanced/src/test/resources/com/dianping/cat/consumer/advanced/metric_analyzer.xml b/cat-consumer-advanced/src/test/resources/com/dianping/cat/consumer/metric/metric_analyzer.xml similarity index 100% rename from cat-consumer-advanced/src/test/resources/com/dianping/cat/consumer/advanced/metric_analyzer.xml rename to cat-consumer-advanced/src/test/resources/com/dianping/cat/consumer/metric/metric_analyzer.xml diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java index ac2bdb40555c09511ed4eb7ddd4cc9db019dca7f..ef68315cf85af94040462543f46971c1b757ef50 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java @@ -120,4 +120,20 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer implements Log } } + public Map getOldVersionDomains() { + return m_oldVersionDomains; + } + + public void setServerStateManager(ServerStatisticManager serverStateManager) { + m_serverStateManager = serverStateManager; + } + + public void setBucketManager(LocalMessageBucketManager bucketManager) { + m_bucketManager = bucketManager; + } + + public Map getErrorTimestampDomains() { + return m_errorTimestampDomains; + } + } diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/problem/aggregation/AggregationConfigManager.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/problem/aggregation/AggregationConfigManager.java index 9bc1347b532c7a48d3d1331130c6740d61412120..bebead93641292da42d53fb9e7a31d2ce88339b6 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/problem/aggregation/AggregationConfigManager.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/problem/aggregation/AggregationConfigManager.java @@ -18,7 +18,7 @@ import com.dianping.cat.core.config.ConfigEntity; public class AggregationConfigManager implements Initializable { @Inject - private ConfigDao m_configDao; + protected ConfigDao m_configDao; @Inject protected AggregationHandler m_handler; diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java index becca7bff60217cf18d2e08d46a3eaef6909014f..08bae59718ba5487bcf9f24b2f50deffcd264042 100644 --- a/cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/AllTests.java @@ -9,10 +9,12 @@ import com.dianping.cat.consumer.core.GsonTest; import com.dianping.cat.consumer.core.NumberFormatTest; import com.dianping.cat.consumer.core.aggregation.CompositeFormatTest; import com.dianping.cat.consumer.core.aggregation.DefaultFormatTest; +import com.dianping.cat.consumer.dump.DumpAnalyzerTest; import com.dianping.cat.consumer.event.EventAnalyzerTest; import com.dianping.cat.consumer.event.EventReportMergerTest; import com.dianping.cat.consumer.heartbeat.HeartbeatAnalyzerTest; import com.dianping.cat.consumer.heartbeat.HeartbeatReportMergerTest; +import com.dianping.cat.consumer.problem.AggregationConfigManagerTest; import com.dianping.cat.consumer.problem.ProblemAnalyzerTest; import com.dianping.cat.consumer.problem.ProblemHandlerTest; import com.dianping.cat.consumer.problem.ProblemReportAggregationTest; @@ -81,12 +83,16 @@ ProblemAnalyzerTest.class, ProblemReportMergerTest.class, +AggregationConfigManagerTest.class, + ProblemReportAllBuilderTest.class, CompositeFormatTest.class, DefaultFormatTest.class, +DumpAnalyzerTest.class, + TransactionReportTypeAggergatorTest.class }) public class AllTests { diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/DefaultConsumerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/DefaultConsumerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..cbb966eac25037dfff636e0193d88035bd5ed103 --- /dev/null +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/DefaultConsumerTest.java @@ -0,0 +1,21 @@ +package com.dianping.cat.consumer; + +import junit.framework.Assert; + +import org.junit.Test; +import org.unidal.lookup.ComponentTestCase; + +import com.dianping.cat.analysis.MessageAnalyzer; +import com.dianping.cat.consumer.transaction.TransactionAnalyzer; +import com.dianping.cat.message.spi.core.MessageConsumer; + +public class DefaultConsumerTest extends ComponentTestCase { + + @Test + public void test() throws Exception { + RealtimeConsumer consumer = (RealtimeConsumer) lookup(MessageConsumer.class); + MessageAnalyzer analyzer = consumer.getCurrentAnalyzer(TransactionAnalyzer.ID); + + Assert.assertEquals(true, analyzer != null); + } +} diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/MockLog.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/MockLog.java new file mode 100644 index 0000000000000000000000000000000000000000..8f9277fc93c6cac57a7c03023b6849a59a4b7c6f --- /dev/null +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/MockLog.java @@ -0,0 +1,110 @@ +package com.dianping.cat.consumer; + +import org.codehaus.plexus.logging.Logger; + +public class MockLog implements Logger { + + @Override + public void debug(String message) { + + } + + @Override + public void debug(String message, Throwable throwable) { + + } + + @Override + public boolean isDebugEnabled() { + + return false; + } + + @Override + public void info(String message) { + + } + + @Override + public void info(String message, Throwable throwable) { + + } + + @Override + public boolean isInfoEnabled() { + + return false; + } + + @Override + public void warn(String message) { + + } + + @Override + public void warn(String message, Throwable throwable) { + + } + + @Override + public boolean isWarnEnabled() { + + return false; + } + + @Override + public void error(String message) { + + } + + @Override + public void error(String message, Throwable throwable) { + + } + + @Override + public boolean isErrorEnabled() { + + return false; + } + + @Override + public void fatalError(String message) { + + } + + @Override + public void fatalError(String message, Throwable throwable) { + + } + + @Override + public boolean isFatalErrorEnabled() { + + return false; + } + + @Override + public Logger getChildLogger(String name) { + + return null; + } + + @Override + public int getThreshold() { + + return 0; + } + + @Override + public void setThreshold(int threshold) { + + } + + @Override + public String getName() { + + return null; + } + +} \ No newline at end of file diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/RealtimeConfigConfiguration.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/RealtimeConfigConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..f7cd347e54d6baceaa32cff9bfb0a709be866ac7 --- /dev/null +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/RealtimeConfigConfiguration.java @@ -0,0 +1,51 @@ +package com.dianping.cat.consumer; + +import java.util.ArrayList; +import java.util.List; + +import org.unidal.lookup.configuration.AbstractResourceConfigurator; +import org.unidal.lookup.configuration.Component; + +import com.dianping.cat.analysis.MessageAnalyzer; +import com.dianping.cat.analysis.MessageAnalyzerManager; +import com.dianping.cat.consumer.event.EventAnalyzer; +import com.dianping.cat.consumer.top.TopAnalyzer; +import com.dianping.cat.consumer.transaction.Configurator; +import com.dianping.cat.consumer.transaction.TransactionAnalyzer; +import com.dianping.cat.consumer.transaction.TransactionAnalyzerTest; + +public class RealtimeConfigConfiguration extends AbstractResourceConfigurator { + + public static void main(String[] args) { + generatePlexusComponentsXmlFile(new Configurator()); + } + + protected Class getTestClass() { + return TransactionAnalyzerTest.class; + } + + @Override + public List defineComponents() { + List all = new ArrayList(); + + return all; + } + + public static class MockMessageAnalyzerManager implements MessageAnalyzerManager { + + @Override + public List getAnalyzerNames() { + List list = new ArrayList(); + + list.add(TransactionAnalyzer.ID); + list.add(EventAnalyzer.ID); + list.add(TopAnalyzer.ID); + return list; + } + + @Override + public MessageAnalyzer getAnalyzer(String name, long startTime) { + return null; + } + } +} diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/core/DumpAnalyzerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/core/DumpAnalyzerTest.java deleted file mode 100644 index fd171e132a4e5ef1ced00fdba9295dc13a7731d8..0000000000000000000000000000000000000000 --- a/cat-consumer/src/test/java/com/dianping/cat/consumer/core/DumpAnalyzerTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.dianping.cat.consumer.core; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; -import org.unidal.lookup.ComponentTestCase; - -import com.dianping.cat.analysis.MessageAnalyzer; -import com.dianping.cat.analysis.MessageAnalyzerManager; -import com.dianping.cat.message.Transaction; -import com.dianping.cat.message.internal.DefaultTransaction; -import com.dianping.cat.message.io.DefaultMessageQueue; -import com.dianping.cat.message.spi.MessageTree; -import com.dianping.cat.message.spi.internal.DefaultMessageTree; - -@RunWith(JUnit4.class) -public class DumpAnalyzerTest extends ComponentTestCase { - @Test - public void test() throws Exception { - MessageAnalyzerManager manager = lookup(MessageAnalyzerManager.class); - long now = 1334041324150L; - int num = 1000000; - DefaultMessageQueue queue = new DefaultMessageQueue(num); - - - for (int i = 0; i < num; i++) { - queue.offer(newMessageTree(i, now + i * 10L)); - } - - MessageAnalyzer analyzer = manager.getAnalyzer("dump", now); - - analyzer.analyze(queue); - analyzer.doCheckpoint(true); - } - - private MessageTree newMessageTree(int i, long timestamp) { - MessageTree tree = new DefaultMessageTree(); - - tree.setDomain("domain"); - tree.setHostName("hostName" + i); - tree.setIpAddress("ipAddress" + i); - tree.setMessageId(String.valueOf(i)); - tree.setParentMessageId("parentMessageId" + i); - tree.setRootMessageId("rootMessageId" + i); - tree.setSessionToken("sessionToken"); - tree.setThreadGroupName("threadGroupName"); - tree.setThreadId("threadId" + i); - tree.setThreadName("threadName"); - - tree.setMessage(newTransaction("type", "name" + i, timestamp, "0", 123456 + i, "data" + i)); - return tree; - } - - private Transaction newTransaction(String type, String name, long timestamp, String status, int duration, String data) { - DefaultTransaction transaction = new DefaultTransaction(type, name, null); - - transaction.setStatus(status); - transaction.addData(data); - transaction.complete(); - transaction.setTimestamp(timestamp); - transaction.setDurationInMillis(duration); - return transaction; - } -} diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/dump/DumpAnalyzerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/dump/DumpAnalyzerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..858edaf1d953ccc5e86cda2fd6f2bae9fa98f7ec --- /dev/null +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/dump/DumpAnalyzerTest.java @@ -0,0 +1,133 @@ +package com.dianping.cat.consumer.dump; + +import java.io.IOException; + +import junit.framework.Assert; + +import org.junit.Test; + +import com.dianping.cat.consumer.MockLog; +import com.dianping.cat.message.Message; +import com.dianping.cat.message.internal.DefaultTransaction; +import com.dianping.cat.message.internal.MessageId; +import com.dianping.cat.message.spi.MessageTree; +import com.dianping.cat.message.spi.internal.DefaultMessageTree; +import com.dianping.cat.statistic.ServerStatisticManager; +import com.dianping.cat.storage.dump.LocalMessageBucketManager; + +public class DumpAnalyzerTest { + + @Test + public void test() throws Exception { + DumpAnalyzer analyzer = new DumpAnalyzer(); + int size = 1000; + MockLocalMessageBucketManager bucketManager = new MockLocalMessageBucketManager(); + + analyzer.setServerStateManager(new ServerStatisticManager()); + analyzer.setBucketManager(bucketManager); + analyzer.enableLogging(new MockLog()); + + for (int i = 0; i < size; i++) { + analyzer.process(generateMessageTree(i)); + } + + Assert.assertEquals(size, bucketManager.m_insert); + + analyzer.doCheckpoint(true); + Thread.sleep(1000); + + Assert.assertEquals(true, bucketManager.m_archive); + + for (int i = 0; i < size; i++) { + analyzer.process(generateOldMessageTree()); + } + + Assert.assertEquals(size, bucketManager.m_insert); + Assert.assertEquals(size, analyzer.getOldVersionDomains().get("Cat").intValue()); + + for (int i = 0; i < size; i++) { + analyzer.process(generateErrorMessageTree()); + } + + Assert.assertEquals(size, bucketManager.m_insert); + Assert.assertEquals(size, analyzer.getOldVersionDomains().get("Cat").intValue()); + Assert.assertEquals(size, analyzer.getErrorTimestampDomains().get("Cat").intValue()); + } + + protected MessageTree generateOldMessageTree() { + DefaultMessageTree tree = (DefaultMessageTree) generateMessageTree(10); + + tree.setMessageId("Cat-0a010680-1385467200000-10"); + + return tree; + } + + protected MessageTree generateErrorMessageTree() { + DefaultMessageTree tree = (DefaultMessageTree) generateMessageTree(10); + + tree.setMessageId("Cat-0a010680-184852-10"); + + return tree; + } + + protected MessageTree generateMessageTree(int i) { + MessageTree tree = new DefaultMessageTree(); + + tree.setDomain("Cat"); + tree.setHostName("group001"); + tree.setIpAddress("192.168.1.1"); + + DefaultTransaction t = new DefaultTransaction("A", "n" + i % 2, null); + DefaultTransaction t2 = new DefaultTransaction("A-1", "n" + i % 3, null); + + if (i % 2 == 0) { + t2.setStatus("ERROR"); + } else { + t2.setStatus(Message.SUCCESS); + } + + t2.complete(); + t2.setDurationInMillis(i); + + t.addChild(t2); + + if (i % 2 == 0) { + t.setStatus("ERROR"); + } else { + t.setStatus(Message.SUCCESS); + } + + t.complete(); + t.setDurationInMillis(i * 2); + long timestamp = 1385467200000L; + + t.setTimestamp(timestamp + 1000); + t2.setTimestamp(timestamp + 2000); + tree.setMessage(t); + tree.setMessageId("Cat-0a010680-384852-" + i); + + return tree; + } + + public static class MockLocalMessageBucketManager extends LocalMessageBucketManager { + + protected boolean m_archive = false; + + protected int m_insert = 0; + + @Override + public MessageTree loadMessage(String messageId) throws IOException { + return new DefaultMessageTree(); + } + + @Override + public void storeMessage(MessageTree tree, MessageId id) throws IOException { + m_insert++; + } + + @Override + public void archive(long startTime) { + m_archive = true; + } + } +} diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/AggregationConfigManagerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/AggregationConfigManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..407d8224ca06e9bcd7fc17ab359cf601d215e712 --- /dev/null +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/AggregationConfigManagerTest.java @@ -0,0 +1,151 @@ +package com.dianping.cat.consumer.problem; + +import java.util.List; + +import junit.framework.Assert; + +import org.junit.Test; +import org.unidal.dal.jdbc.DalException; +import org.unidal.dal.jdbc.DalNotFoundException; +import org.unidal.dal.jdbc.Readset; +import org.unidal.dal.jdbc.Updateset; + +import com.dianping.cat.consumer.aggreation.model.entity.Aggregation; +import com.dianping.cat.consumer.aggreation.model.entity.AggregationRule; +import com.dianping.cat.consumer.problem.aggregation.AggregationConfigManager; +import com.dianping.cat.consumer.problem.aggregation.AggregationHandler; +import com.dianping.cat.core.config.Config; +import com.dianping.cat.core.config.ConfigDao; + +public class AggregationConfigManagerTest { + + private static int s_storeCount; + + @Test + public void test() { + AggregationConfigManager manager = new MockAggregationConfigManager(); + + ((MockAggregationConfigManager) manager).setAggregationHandler(new MockAggregationHandler()); + ((MockAggregationConfigManager) manager).setConfigDao(new MockConfigDao1()); + manager.initialize(); + manager.deleteAggregationRule("rule"); + + Assert.assertEquals(1, s_storeCount); + AggregationRule rule = new AggregationRule(); + + rule.setDomain("domain1"); + rule.setPattern("domain1"); + + manager.insertAggregationRule(rule); + + Assert.assertEquals(2, s_storeCount); + AggregationRule rule2 = new AggregationRule(); + rule2.setDomain("domain2"); + rule2.setPattern("domain2"); + manager.insertAggregationRule(rule2); + + Assert.assertEquals(3, s_storeCount); + + List rules = manager.queryAggrarationRules(); + Assert.assertEquals(3, rules.size()); + + List dbRules = manager.queryAggrarationRulesFromDB(); + Assert.assertEquals(1, dbRules.size()); + + AggregationRule aggration = manager.queryAggration("domain"); + Assert.assertEquals(true, aggration != null); + } + + @Test + public void testInitThrowException() { + MockAggregationConfigManager manager = new MockAggregationConfigManager(); + + manager.setAggregationHandler(new MockAggregationHandler()); + manager.setConfigDao(new MockConfigDao2()); + manager.initialize(); + + List rules = manager.queryAggrarationRules(); + Assert.assertEquals(0, rules.size()); + } + + public static class MockAggregationConfigManager extends AggregationConfigManager { + + protected void setConfigDao(ConfigDao configDao) { + m_configDao = configDao; + } + + protected void setAggregationHandler(AggregationHandler handler) { + m_handler = handler; + } + } + + public static class MockConfigDao2 extends MockConfigDao1 { + @Override + public Config findByName(String name, Readset readset) throws DalNotFoundException { + throw new DalNotFoundException("this is test exception, please ignore it!"); + } + } + + public static class MockConfigDao1 extends ConfigDao { + + @Override + public Config createLocal() { + return super.createLocal(); + } + + @Override + public int deleteByPK(Config proto) throws DalException { + return 1; + } + + @Override + public Config findByPK(int keyId, Readset readset) throws DalException { + Config config = new Config(); + + config.setId(keyId); + config.setContent(new Aggregation().toString()); + return config; + } + + @Override + public Config findByName(String name, Readset readset) throws DalException { + Config config = new Config(); + + config.setName(name); + Aggregation aggregation = new Aggregation(); + + AggregationRule rule = new AggregationRule(); + rule.setDomain("domain"); + rule.setType(1); + rule.setPattern("domain"); + aggregation.addAggregationRule(rule); + + config.setContent(aggregation.toString()); + return config; + } + + @Override + public int insert(Config proto) throws DalException { + return 1; + } + + @Override + public int updateByPK(Config proto, Updateset updateset) throws DalException { + s_storeCount++; + return 1; + } + } + + public static class MockAggregationHandler implements AggregationHandler { + + @Override + public void register(List rules) { + } + + @Override + public String handle(int type, String domain, String input) { + return null; + } + } + +} diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemAnalyzerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemAnalyzerTest.java index a49bbfc8d7468db624f7eca95eb73ff9c945fadd..f1c1f3fc35b24e1878e322b864682e010fc34ba9 100644 --- a/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemAnalyzerTest.java +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/problem/ProblemAnalyzerTest.java @@ -13,6 +13,11 @@ import org.unidal.lookup.ComponentTestCase; import com.dianping.cat.Constants; import com.dianping.cat.analysis.MessageAnalyzer; import com.dianping.cat.consumer.problem.model.entity.ProblemReport; +import com.dianping.cat.message.Event; +import com.dianping.cat.message.Heartbeat; +import com.dianping.cat.message.Transaction; +import com.dianping.cat.message.internal.DefaultEvent; +import com.dianping.cat.message.internal.DefaultHeartbeat; import com.dianping.cat.message.internal.DefaultTransaction; import com.dianping.cat.message.spi.MessageTree; import com.dianping.cat.message.spi.internal.DefaultMessageTree; @@ -28,10 +33,8 @@ public class ProblemAnalyzerTest extends ComponentTestCase { @Before public void setUp() throws Exception { super.setUp(); - long currentTimeMillis = System.currentTimeMillis(); - - m_timestamp = currentTimeMillis - currentTimeMillis % (3600 * 1000); + m_timestamp = 1385470800000L; m_analyzer = (ProblemAnalyzer) lookup(MessageAnalyzer.class, ProblemAnalyzer.ID); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm"); Date date = sdf.parse("20120101 00:00"); @@ -55,46 +58,67 @@ public class ProblemAnalyzerTest extends ComponentTestCase { protected MessageTree generateMessageTree(int i) { MessageTree tree = new DefaultMessageTree(); - + tree.setMessageId("" + i); tree.setDomain(m_domain); tree.setHostName("group001"); tree.setIpAddress("192.168.1.1"); tree.setThreadGroupName("Cat"); tree.setThreadName("Cat-ProblemAnalyzer-Test"); - - DefaultTransaction t = new DefaultTransaction("A", "n" + i % 2, null); - - t.setTimestamp(m_timestamp); - t.setDurationInMillis(i * 50); - - switch (i % 7) { - case 0: - t.setType("URL"); - break; - case 1: - t.setType("Call"); - break; - case 2: - t.setType("Cache."); - t.setDurationInMillis(i * 5); - break; - case 3: - t.setType("SQL"); - break; - case 4: - t.setType("PigeonCall"); - break; - case 5: - t.setType("Service"); - break; - case 6: - t.setType("PigeonService"); - break; + if (i < 10) { + DefaultEvent error = new DefaultEvent("Error", "Error", null); + + error.setTimestamp(m_timestamp); + tree.setMessage(error); + } else if (i < 20) { + DefaultHeartbeat heartbeat = new DefaultHeartbeat("heartbeat", "heartbeat"); + + heartbeat.setTimestamp(m_timestamp); + tree.setMessage(heartbeat); + } else { + + DefaultTransaction t = new DefaultTransaction("A", "n" + i % 2, null); + + t.setTimestamp(m_timestamp); + t.setDurationInMillis(i * 50); + + switch (i % 7) { + case 0: + t.setType("URL"); + break; + case 1: + t.setType("Call"); + break; + case 2: + t.setType("Cache."); + t.setDurationInMillis(i * 5); + break; + case 3: + t.setType("SQL"); + break; + case 4: + t.setType("PigeonCall"); + break; + case 5: + t.setType("Service"); + break; + case 6: + t.setType("PigeonService"); + break; + } + + Event error = new DefaultEvent("Error", "Error", null); + Event exception = new DefaultEvent("Other", "Exception", null); + Heartbeat heartbeat = new DefaultHeartbeat("heartbeat", "heartbeat"); + DefaultTransaction transaction = new DefaultTransaction("Transaction", "Transaction", null); + + transaction.setStatus(Transaction.SUCCESS); + t.addChild(transaction); + t.addChild(error); + t.addChild(exception); + t.addChild(heartbeat); + tree.setMessage(t); } - - tree.setMessage(t); - return tree; } diff --git a/cat-consumer/src/test/java/com/dianping/cat/consumer/state/StateAnalyzerTest.java b/cat-consumer/src/test/java/com/dianping/cat/consumer/state/StateAnalyzerTest.java index 0d87d39f759f36041be6688a5c13d70d6988fb11..8b48753ce5c20a71f3459bb127282f96196760cf 100644 --- a/cat-consumer/src/test/java/com/dianping/cat/consumer/state/StateAnalyzerTest.java +++ b/cat-consumer/src/test/java/com/dianping/cat/consumer/state/StateAnalyzerTest.java @@ -36,7 +36,6 @@ public class StateAnalyzerTest extends ComponentTestCase { @Test public void testProcess() throws Exception { - StateReport report = m_analyzer.getReport(m_domain); String expected = Files.forIO().readFrom(getClass().getResourceAsStream("state_analyzer.xml"), "utf-8"); diff --git a/cat-consumer/src/test/resources/com/dianping/cat/consumer/problem/problem_analyzer.xml b/cat-consumer/src/test/resources/com/dianping/cat/consumer/problem/problem_analyzer.xml index 4d5a1c5d77a498f79ca9284cea0ee11349cb2ec8..5dfae10bb6f44c5a6e916d60022429980a4d67a1 100644 --- a/cat-consumer/src/test/resources/com/dianping/cat/consumer/problem/problem_analyzer.xml +++ b/cat-consumer/src/test/resources/com/dianping/cat/consumer/problem/problem_analyzer.xml @@ -3,287 +3,264 @@ group 192.168.1.1 - - + + 1 - 11 - 15 - 25 - 29 - 39 - 43 - 53 - 57 - 67 - 71 - 81 - 85 - 95 - 99 - - - - 1 - 11 - 15 - 25 - 29 - 39 - 43 - 53 - 57 - 67 - 71 - 81 - 85 - 95 - 99 - - - - - - 2 - 16 - 30 - 44 - 58 - 72 - 86 - 100 - - - - 2 - 16 - 30 - 44 - 58 - 72 - 86 - 100 - - - - - 2 - 16 - 30 - 44 - 58 - 72 - 86 - 100 - - - - 2 - 16 - 30 - 44 - 58 - 72 - 86 - 100 - - - - - 3 - 17 - 31 - 45 - 59 - 73 - 87 - - - - 3 - 17 - 31 - 45 - 59 - 73 - 87 - - - - - - 3 - - - 17 - - - 31 - 45 - 59 - - - 73 - 87 - - - - 3 - 17 - 31 - 45 - 59 - 73 - 87 - - - - - - 4 - 8 - 18 - 22 - 32 - 36 - 46 - 50 - 60 - 64 - 74 - 78 - 88 - 92 - - - - 4 - 8 - 18 - 22 - 32 - 36 - 46 - 50 - 60 - 64 - 74 - 78 - 88 - 92 - - - - - 4 + 5 + 6 + 7 8 - - - 18 - - + 9 + 20 + 21 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 32 + 33 + 34 + 35 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 46 + 47 + 48 + 49 50 - - + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 60 + 61 + 62 + 63 64 - 74 - 78 - 88 - 92 + 65 + 66 + 67 + 68 + 69 + 70 - + + 1 + 2 + 3 4 + 5 + 6 + 7 8 - 18 + 9 + 20 + 21 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 32 + 33 + 34 + 35 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 46 + 47 + 48 + 49 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 60 - 64 - 74 - 78 - 88 - 92 - - - - - - 5 - 19 - 33 - 47 - 61 - 75 - 89 - - - - 5 - 19 - 33 - 47 61 - 75 - 89 + 62 + 63 + 64 + 65 + 66 + 67 + 68 + 69 + 70 - - - 5 - - + + + 10 + 11 + 12 13 + 14 + 15 + 16 + 17 + 18 19 - - + 20 + 21 + 22 + 23 + 24 + 25 + 26 27 + 28 + 29 + 30 + 31 + 32 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 41 + 42 + 43 + 44 + 45 + 46 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 55 - - + 56 + 57 + 58 + 59 + 60 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 69 - 75 - 83 - 89 - 97 - - 5 + + 10 + 11 + 12 13 + 14 + 15 + 16 + 17 + 18 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 27 + 28 + 29 + 30 + 31 + 32 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 41 + 42 + 43 + 44 + 45 + 46 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 55 + 56 + 57 + 58 + 59 + 60 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 69 - 75 - 83 - 89 - 97 - - 6 + 20 34 48 @@ -292,8 +269,7 @@ 90 - - 6 + 20 34 48 @@ -304,12 +280,6 @@ - - 6 - - - 12 - 20 26 @@ -327,9 +297,7 @@ 96 - - 6 - 12 + 20 26 34 @@ -345,31 +313,114 @@ - - - 7 - 21 - 35 - 49 - 63 - 77 - 91 + + + 21 + 35 + 49 + 63 + 77 + 91 + + + + 21 + 35 + 49 + 63 + 77 + 91 + + + + + + 21 + 35 + + + 49 + + + 63 + 77 + 91 + + + + 21 + 35 + 49 + 63 + 77 + 91 + + + + + + 22 + 32 + 36 + 46 + 50 + 60 + 64 + 74 + 78 + 88 + 92 + + + + 22 + 32 + 36 + 46 + 50 + 60 + 64 + 74 + 78 + 88 + 92 + + + + + + 22 + 32 + 36 + 46 + 50 + + + 60 + 64 + 74 + 78 + 88 + 92 - - 7 - 21 - 35 - 49 - 63 - 77 - 91 + + 22 + 32 + 36 + 46 + 50 + 60 + 64 + 74 + 78 + 88 + 92 - - 9 + 23 37 51 @@ -378,8 +429,7 @@ 93 - - 9 + 23 37 51 @@ -390,8 +440,7 @@ - - 9 + 23 37 51 @@ -400,8 +449,7 @@ 93 - - 9 + 23 37 51 @@ -412,8 +460,7 @@ - - 10 + 24 38 52 @@ -422,8 +469,7 @@ 94 - - 10 + 24 38 52 @@ -434,9 +480,6 @@ - - 10 - 24 38 @@ -448,8 +491,7 @@ 94 - - 10 + 24 38 52 @@ -459,11 +501,39 @@ - - - 11 - 15 + + + 25 + 29 + 39 + 43 + 53 + 57 + 67 + 71 + 81 + 85 + 95 + 99 + + + 25 + 29 + 39 + 43 + 53 + 57 + 67 + 71 + 81 + 85 + 95 + 99 + + + + 25 29 @@ -481,9 +551,7 @@ 99 - - 11 - 15 + 25 29 39 @@ -500,8 +568,7 @@ - - 12 + 26 40 54 @@ -510,8 +577,7 @@ 96 - - 12 + 26 40 54 @@ -522,8 +588,7 @@ - - 13 + 27 41 55 @@ -532,20 +597,50 @@ 97 - - 13 + + 27 + 41 + 55 + 69 + 83 + 97 + + + + + + 27 + 33 + 41 + 47 + 55 + + + 61 + 69 + 75 + 83 + 89 + 97 + + + 27 + 33 41 + 47 55 + 61 69 + 75 83 + 89 97 - - 14 + 28 42 56 @@ -554,8 +649,7 @@ 98 - - 14 + 28 42 56 @@ -565,30 +659,6 @@ - - - 21 - 35 - - - 49 - - - 63 - 77 - 91 - - - - 21 - 35 - 49 - 63 - 77 - 91 - - - 28 @@ -613,5 +683,101 @@ + + + 30 + 44 + 58 + 72 + 86 + 100 + + + + 30 + 44 + 58 + 72 + 86 + 100 + + + + + + 30 + 44 + 58 + 72 + 86 + 100 + + + + 30 + 44 + 58 + 72 + 86 + 100 + + + + + + 31 + 45 + 59 + 73 + 87 + + + + 31 + 45 + 59 + 73 + 87 + + + + + + 31 + 45 + 59 + + + 73 + 87 + + + + 31 + 45 + 59 + 73 + 87 + + + + + + 33 + 47 + 61 + 75 + 89 + + + + 33 + 47 + 61 + 75 + 89 + + + diff --git a/cat-core/src/main/java/com/dianping/cat/storage/DefaultBucketManager.java b/cat-core/src/main/java/com/dianping/cat/storage/DefaultBucketManager.java index 1f18714e92899dae93de26123ee3e8750c73fa59..e9bf5499a496615da76858f02e77cb363ea90db1 100644 --- a/cat-core/src/main/java/com/dianping/cat/storage/DefaultBucketManager.java +++ b/cat-core/src/main/java/com/dianping/cat/storage/DefaultBucketManager.java @@ -37,41 +37,4 @@ public class DefaultBucketManager extends ContainerHolder implements BucketManag return getBucket(String.class, timestamp, name, "report"); } - public static class Entry { - private String m_namespace; - - private String m_path; - - private Class m_type; - - public Entry(Class type, String path, String namespace) { - m_type = type; - m_path = path; - m_namespace = namespace; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof Entry) { - Entry e = (Entry) obj; - - return e.m_type == m_type && e.m_path.equals(m_path) && e.m_namespace.equals(m_namespace); - } - - return false; - } - - @Override - public int hashCode() { - int hashcode = m_type.hashCode(); - - hashcode = hashcode * 31 + m_path.hashCode(); - return hashcode; - } - - @Override - public String toString() { - return String.format("Entry[type=%s,path=%s]", m_type, m_path); - } - } } diff --git a/cat-home/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java index 4274fd982bbe8e6d29709aca06691169f55ac7d8..30e2d89b0d317ed87ed26172f149e51b793fb2de 100644 --- a/cat-home/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java @@ -6,7 +6,7 @@ import java.util.List; import org.unidal.lookup.configuration.AbstractResourceConfigurator; import org.unidal.lookup.configuration.Component; -import com.dianping.cat.consumer.advanced.MetricConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; import com.dianping.cat.core.dal.ProjectDao; import com.dianping.cat.home.dal.abtest.AbtestDao; import com.dianping.cat.home.dal.abtest.AbtestReportDao; diff --git a/cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java index dfacce8b6bf45d4e6439d9cdc01ec8337514555e..a42c02cfad6ce4b400c697170c3c0a51c04f16f5 100644 --- a/cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java @@ -11,9 +11,6 @@ final class CatDatabaseConfigurator extends AbstractJdbcResourceConfigurator { public List defineComponents() { List all = new ArrayList(); - all.add(defineJdbcDataSourceComponent("cat", "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1:3306/cat", "root", - "password", "")); - defineSimpleTableProviderComponents(all, "cat", com.dianping.cat.home.dal.report._INDEX.getEntityClasses()); defineDaoComponents(all, com.dianping.cat.home.dal.report._INDEX.getDaoClasses()); diff --git a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java index 442213d9b405bf184daba80925620afa257c558e..49e856ff445bb49d5fb6067c151f04bf0fa665a8 100755 --- a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java @@ -12,9 +12,9 @@ import org.unidal.lookup.configuration.Component; import com.dianping.cat.CatHomeModule; import com.dianping.cat.ServerConfigManager; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.dependency.DependencyAnalyzer; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.core.config.ConfigDao; import com.dianping.cat.core.dal.ProjectDao; import com.dianping.cat.home.dal.report.EventDao; diff --git a/cat-home/src/main/java/com/dianping/cat/build/TaskComponentConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/TaskComponentConfigurator.java index 8cf34b5eda9b081c5b5f07746f57acc23eb3ea8e..8fa7f5567189f4d3a47d54ae9c4038ca7c9ae6bc 100644 --- a/cat-home/src/main/java/com/dianping/cat/build/TaskComponentConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/TaskComponentConfigurator.java @@ -8,8 +8,8 @@ import org.unidal.lookup.configuration.Component; import com.dianping.cat.DomainManager; import com.dianping.cat.ServerConfigManager; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.core.dal.DailyGraphDao; import com.dianping.cat.core.dal.GraphDao; import com.dianping.cat.core.dal.TaskDao; diff --git a/cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java index a49e2d717f73517d6b9a37d661d891a1b4274723..a875ecc0c24cdd6420d6e5e3711ea8bf487a65ae 100644 --- a/cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java @@ -11,9 +11,6 @@ final class UserDatabaseConfigurator extends AbstractJdbcResourceConfigurator { public List defineComponents() { List all = new ArrayList(); - all.add(defineJdbcDataSourceComponent("user", "com.mysql.jdbc.Driver", "jdbc:mysql://192.168.8.44:3306/hawk", - "hawk", "hawk", "")); - defineSimpleTableProviderComponents(all, "user", com.dianping.cat.home.dal.user._INDEX.getEntityClasses()); defineDaoComponents(all, com.dianping.cat.home.dal.user._INDEX.getDaoClasses()); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java b/cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java index 09f01877746658a3684c32281e5eac4ab6c65f09..bbe6fbce76bc985e96f85c0c3b449c5726e237c9 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java @@ -18,7 +18,6 @@ import org.unidal.web.mvc.annotation.InboundActionMeta; import org.unidal.web.mvc.annotation.OutboundActionMeta; import org.unidal.web.mvc.annotation.PayloadMeta; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.company.model.entity.ProductLine; import com.dianping.cat.consumer.dependency.DependencyAnalyzer; import com.dianping.cat.consumer.dependency.DependencyReportMerger; @@ -26,6 +25,7 @@ import com.dianping.cat.consumer.dependency.model.entity.Dependency; import com.dianping.cat.consumer.dependency.model.entity.DependencyReport; import com.dianping.cat.consumer.dependency.model.entity.Index; import com.dianping.cat.consumer.dependency.model.entity.Segment; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.home.dal.report.Event; import com.dianping.cat.home.dependency.graph.entity.TopologyEdge; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java b/cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java index c2300b21d85911568d923f32f5aa7ec12efb1be1..e8ca1e45cb24db75e39c41166e80c7aed3af5db7 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java @@ -21,11 +21,11 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.ServerConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.company.model.entity.Domain; import com.dianping.cat.consumer.company.model.entity.ProductLine; import com.dianping.cat.consumer.dependency.DependencyAnalyzer; import com.dianping.cat.consumer.dependency.model.entity.DependencyReport; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.home.dal.report.TopologyGraphDao; import com.dianping.cat.home.dal.report.TopologyGraphEntity; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/Handler.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/Handler.java index 451ecd2e80f289f69a4ce3d85c886f4416c3ee07..1c16d0e9b2840b9d8be0008c380655a80ee64edd 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/Handler.java @@ -13,7 +13,7 @@ import org.unidal.web.mvc.annotation.InboundActionMeta; import org.unidal.web.mvc.annotation.OutboundActionMeta; import org.unidal.web.mvc.annotation.PayloadMeta; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.report.ReportPage; import com.dianping.cat.report.page.LineChart; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/Model.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/Model.java index 6682cd685a416bda5897fd3dbe2cf7b3f6347b5d..515020996f280160817e940291d7a2abc0a0c33c 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/Model.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/Model.java @@ -9,8 +9,8 @@ import java.util.Map; import org.unidal.web.mvc.view.annotation.EntityMeta; import org.unidal.web.mvc.view.annotation.ModelMeta; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; import com.dianping.cat.consumer.company.model.entity.ProductLine; +import com.dianping.cat.consumer.metric.MetricAnalyzer; import com.dianping.cat.home.dal.abtest.Abtest; import com.dianping.cat.report.page.AbstractReportModel; import com.dianping.cat.report.page.LineChart; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/GraphCreator.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/GraphCreator.java index afc53d46a08c5d95b70a49dfe63c2c0ab817b633..5d4cb36f123514b28fcd58b8fc11fbbf99d03ac7 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/GraphCreator.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/GraphCreator.java @@ -12,10 +12,10 @@ import java.util.Map.Entry; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.company.model.entity.ProductLine; +import com.dianping.cat.consumer.metric.MetricAnalyzer; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.helper.Chinese; import com.dianping.cat.helper.TimeUtil; diff --git a/cat-home/src/main/java/com/dianping/cat/report/service/impl/MetricReportService.java b/cat-home/src/main/java/com/dianping/cat/report/service/impl/MetricReportService.java index c1f6eec63afc355612cf67167578512248aa3b33..440198eaf336389bcbe3e25ee4746c5721a0ece1 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/service/impl/MetricReportService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/service/impl/MetricReportService.java @@ -6,10 +6,10 @@ import java.util.List; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; import com.dianping.cat.consumer.advanced.dal.BusinessReport; import com.dianping.cat.consumer.advanced.dal.BusinessReportDao; import com.dianping.cat.consumer.advanced.dal.BusinessReportEntity; +import com.dianping.cat.consumer.metric.MetricAnalyzer; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.consumer.metric.model.transform.DefaultNativeParser; import com.dianping.cat.message.Event; diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/abtest/ABTestReportBuilder.java b/cat-home/src/main/java/com/dianping/cat/report/task/abtest/ABTestReportBuilder.java index a9eed261a07c965c9afc069931c5587c1903d4c8..acce3b79f582d3f7ded32af14068f887055337e8 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/abtest/ABTestReportBuilder.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/abtest/ABTestReportBuilder.java @@ -13,7 +13,7 @@ import org.unidal.dal.jdbc.DalException; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.home.dal.abtest.AbtestReportDao; diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricAlert.java b/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricAlert.java index 07f014ae7f9ccb89448bda290d9bc65af85dc8b9..87fc055fdf1a15353a0cf4f0f29174e4d0d26d41 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricAlert.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricAlert.java @@ -14,8 +14,8 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.ServerConfigManager; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.metric.model.entity.MetricItem; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.helper.TimeUtil; diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricBaselineReportBuilder.java b/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricBaselineReportBuilder.java index 583315aa99890f11ce983ba817c53f4c487ae61a..27b3e9ad6452c74a5bed9c1ad9f59eab8a1adc15 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricBaselineReportBuilder.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/metric/MetricBaselineReportBuilder.java @@ -13,8 +13,8 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.metric.model.entity.MetricItem; import com.dianping.cat.consumer.metric.model.entity.MetricReport; import com.dianping.cat.helper.TimeUtil; diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java b/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java index ff53635b3dbcc26db2b20dee7297acb9c0aaeb0f..7fae3a2fb6ea60cede1ed1efc19620381b5f4e47 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java @@ -13,12 +13,12 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.Constants; import com.dianping.cat.ReportType; -import com.dianping.cat.consumer.advanced.MetricAnalyzer; import com.dianping.cat.consumer.cross.CrossAnalyzer; import com.dianping.cat.consumer.dependency.DependencyAnalyzer; import com.dianping.cat.consumer.event.EventAnalyzer; import com.dianping.cat.consumer.heartbeat.HeartbeatAnalyzer; import com.dianping.cat.consumer.matrix.MatrixAnalyzer; +import com.dianping.cat.consumer.metric.MetricAnalyzer; import com.dianping.cat.consumer.problem.ProblemAnalyzer; import com.dianping.cat.consumer.sql.SqlAnalyzer; import com.dianping.cat.consumer.state.StateAnalyzer; diff --git a/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java b/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java index 932707939bd89bfe3c22d53412318fc194b8d537..52edf03a8dab77adcafae1cbb44fbac0cdf4ee1a 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java +++ b/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java @@ -4,8 +4,8 @@ import org.unidal.helper.Threads.Task; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; public class ConfigReloadTask implements Task { diff --git a/cat-home/src/main/java/com/dianping/cat/system/page/abtest/ReportHandler.java b/cat-home/src/main/java/com/dianping/cat/system/page/abtest/ReportHandler.java index 5a59a01f213959598a25d38bf706b7c6cecd6078..e1f40de112bbb59241bcb45231dcda24f5692434 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/page/abtest/ReportHandler.java +++ b/cat-home/src/main/java/com/dianping/cat/system/page/abtest/ReportHandler.java @@ -20,7 +20,7 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricConfigManager; +import com.dianping.cat.consumer.metric.MetricConfigManager; import com.dianping.cat.home.dal.abtest.Abtest; import com.dianping.cat.home.dal.abtest.AbtestDao; import com.dianping.cat.home.dal.abtest.AbtestEntity; diff --git a/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java b/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java index 4bef2a5efc7eb3e3f86ef2d9a7a73a407a637636..f3e245f987d4a3b0a4a7f5a25504bd77ce6596c8 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java @@ -24,10 +24,10 @@ import org.unidal.web.mvc.annotation.PayloadMeta; import com.dianping.cat.Cat; import com.dianping.cat.Constants; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; -import com.dianping.cat.consumer.advanced.MetricConfigManager; -import com.dianping.cat.consumer.advanced.ProductLineConfigManager; import com.dianping.cat.consumer.aggreation.model.entity.AggregationRule; import com.dianping.cat.consumer.company.model.entity.ProductLine; +import com.dianping.cat.consumer.metric.MetricConfigManager; +import com.dianping.cat.consumer.metric.ProductLineConfigManager; import com.dianping.cat.consumer.problem.aggregation.AggregationConfigManager; import com.dianping.cat.core.dal.Project; import com.dianping.cat.core.dal.ProjectDao; diff --git a/cat-home/src/main/resources/META-INF/plexus/components.xml b/cat-home/src/main/resources/META-INF/plexus/components.xml index 8f39f17a239e59d34726aa3001e18ea619855b5f..e622d5471a134d7df1bdaa8e257f1aad81e10a68 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -130,7 +130,7 @@ com.dianping.cat.ServerConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.home.dal.report.TopologyGraphDao @@ -149,10 +149,10 @@ com.dianping.cat.system.config.ConfigReloadTask - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager @@ -194,10 +194,10 @@ com.dianping.cat.report.baseline.BaselineService - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager @@ -730,10 +730,10 @@ com.dianping.cat.report.task.metric.MetricPointParser - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.report.baseline.BaselineCreator @@ -760,10 +760,10 @@ com.dianping.cat.report.task.metric.MetricPointParser - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.report.baseline.BaselineService @@ -971,7 +971,7 @@ com.dianping.cat.home.dal.abtest.AbtestReportDao - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.system.page.abtest.service.ABTestService @@ -1575,30 +1575,6 @@ /data/appdatas/cat/datasources.xml - - org.unidal.dal.jdbc.datasource.DataSource - cat - org.unidal.dal.jdbc.datasource.JdbcDataSource - - cat - 3 - 1s - 10m - 1000 - - com.mysql.jdbc.Driver - jdbc:mysql://127.0.0.1:3306/cat - root - password - - - - - - org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager - - - org.unidal.dal.jdbc.mapping.TableProvider baseline @@ -1865,30 +1841,6 @@ - - org.unidal.dal.jdbc.datasource.DataSource - user - org.unidal.dal.jdbc.datasource.JdbcDataSource - - user - 3 - 1s - 10m - 1000 - - com.mysql.jdbc.Driver - jdbc:mysql://192.168.8.44:3306/hawk - hawk - hawk - - - - - - org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager - - - org.unidal.dal.jdbc.mapping.TableProvider dp-admin-login @@ -1949,7 +1901,7 @@ com.dianping.cat.home.dal.abtest.AbtestReportDao - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager @@ -2849,7 +2801,7 @@ com.dianping.cat.report.page.PayloadNormalizer - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.report.page.metric.chart.GraphCreator @@ -2866,8 +2818,8 @@ - com.dianping.cat.consumer.advanced.ProductLineConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.core.config.ConfigDao @@ -2891,16 +2843,16 @@ com.dianping.cat.report.page.metric.chart.CachedMetricReportService - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager - com.dianping.cat.consumer.advanced.MetricConfigManager - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager com.dianping.cat.core.config.ConfigDao @@ -2938,7 +2890,7 @@ com.dianping.cat.report.page.dependency.graph.TopologyGraphManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.report.page.dependency.ExternalInfoBuilder @@ -2964,7 +2916,7 @@ com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.ServerConfigManager @@ -3296,13 +3248,13 @@ com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager - com.dianping.cat.consumer.advanced.ProductLineConfigManager + com.dianping.cat.consumer.metric.ProductLineConfigManager com.dianping.cat.consumer.problem.aggregation.AggregationConfigManager - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager com.dianping.cat.system.config.ExceptionThresholdConfigManager @@ -3441,7 +3393,7 @@ com.dianping.cat.home.dal.abtest.AbtestReportDao - com.dianping.cat.consumer.advanced.MetricConfigManager + com.dianping.cat.consumer.metric.MetricConfigManager