diff --git a/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java index bd2db9feb4f37375faa059f692315863a4c5a16f..fca858fc0cc682085341b7c0d0792b1408ad0198 100755 --- a/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java @@ -69,7 +69,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { List all = new ArrayList(); all.add(C(ModelService.class, "transaction-local", LocalTransactionService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "transaction-historical", HistoricalTransactionService.class) // .req(BucketManager.class, ReportService.class)); @@ -78,7 +78,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "transaction-historical" }, "m_services")); all.add(C(ModelService.class, "event-local", LocalEventService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "event-historical", HistoricalEventService.class) // .req(BucketManager.class, ReportService.class)); @@ -87,7 +87,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "event-historical" }, "m_services")); all.add(C(ModelService.class, "problem-local", LocalProblemService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "problem-historical", HistoricalProblemService.class) // .req(BucketManager.class, ReportService.class)); @@ -96,7 +96,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "problem-historical" }, "m_services")); all.add(C(ModelService.class, "heartbeat-local", LocalHeartbeatService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "heartbeat-historical", HistoricalHeartbeatService.class) // .req(BucketManager.class, ReportService.class)); @@ -105,7 +105,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "heartbeat-historical" }, "m_services")); all.add(C(ModelService.class, "matrix-local", LocalMatrixService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "matrix-historical", HistoricalMatrixService.class) // .req(BucketManager.class, ReportService.class)); @@ -114,7 +114,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "matrix-historical" }, "m_services")); all.add(C(ModelService.class, "state-local", LocalStateService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "state-historical", HistoricalStateService.class) // .req(BucketManager.class, ReportService.class)); @@ -123,7 +123,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "state-historical" }, "m_services")); all.add(C(ModelService.class, "cross-local", LocalCrossService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "cross-historical", HistoricalCrossService.class) // .req(BucketManager.class, ReportService.class)); @@ -132,7 +132,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "cross-historical" }, "m_services")); all.add(C(ModelService.class, "sql-local", LocalSqlService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "sql-historical", HistoricalSqlService.class) // .req(BucketManager.class, ReportService.class)); @@ -141,7 +141,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "sql-historical" }, "m_services")); all.add(C(ModelService.class, "top-local", LocalTopService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "top-historical", HistoricalTopService.class) // .req(BucketManager.class, ReportService.class)); @@ -150,7 +150,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "top-historical" }, "m_services")); all.add(C(ModelService.class, "dependency-local", LocalDependencyService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "dependency-historical", HistoricalDependencyService.class) // .req(BucketManager.class, ReportService.class)); @@ -159,7 +159,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "dependency-historical" }, "m_services")); all.add(C(ModelService.class, "metric-local", LocalMetricService.class) // - .req(ReportService.class) // + .req(BucketManager.class) // .req(MessageConsumer.class)); all.add(C(ModelService.class, "metric-historical", HistoricalMetricService.class) // .req(BucketManager.class, ReportService.class)); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java index 0303cd8bced29250afca52f248ea51c2e27c37c4..6d17d2cf20c47df219713fab981e483ca1c9652d 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java @@ -1,21 +1,20 @@ package com.dianping.cat.report.page.model.cross; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.cross.CrossAnalyzer; import com.dianping.cat.consumer.cross.model.entity.CrossReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalCrossService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalCrossService() { super(CrossAnalyzer.ID); @@ -26,12 +25,20 @@ public class LocalCrossService extends BaseLocalModelService { CrossReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryCrossReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private CrossReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, CrossAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/dependency/LocalDependencyService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/dependency/LocalDependencyService.java index 0e7ee7321e41b4e9de83155d6e63c4473b8e86e2..7593d75f031a4c1a5694d5c4d81c732174cd8b20 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/dependency/LocalDependencyService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/dependency/LocalDependencyService.java @@ -1,21 +1,20 @@ package com.dianping.cat.report.page.model.dependency; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.dependency.DependencyAnalyzer; import com.dianping.cat.consumer.dependency.model.entity.DependencyReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.dependency.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalDependencyService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalDependencyService() { super(DependencyAnalyzer.ID); @@ -26,12 +25,20 @@ public class LocalDependencyService extends BaseLocalModelService bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, DependencyAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java index 4f3a2f69b04387b20adc5b9e6ac7051a53e9c8ad..13bce6dcda7899701d8b0a84cae76ad726e898b5 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java @@ -1,21 +1,20 @@ package com.dianping.cat.report.page.model.event; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.event.EventAnalyzer; import com.dianping.cat.consumer.event.model.entity.EventReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.event.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalEventService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalEventService() { super(EventAnalyzer.ID); @@ -26,12 +25,20 @@ public class LocalEventService extends BaseLocalModelService { EventReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryEventReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + private EventReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + + try { + bucket = m_bucketManager.getReportBucket(timestamp, EventAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java index b1c398daa548d8c3a88fd48a12c8d6b9ee2198f8..a0d0a20f563331ed1eef7d6d3cc455f859e8106f 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java @@ -1,20 +1,19 @@ package com.dianping.cat.report.page.model.heartbeat; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.heartbeat.HeartbeatAnalyzer; import com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.heartbeat.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalHeartbeatService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalHeartbeatService() { super(HeartbeatAnalyzer.ID); @@ -25,12 +24,20 @@ public class LocalHeartbeatService extends BaseLocalModelService bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, HeartbeatAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java index a4efc876127831d79bca2acf992d3847920ed646..0438912a4a49c5dba1c4b7146e3e87e19f6fbb26 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java @@ -1,21 +1,20 @@ package com.dianping.cat.report.page.model.matrix; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.matrix.MatrixAnalyzer; import com.dianping.cat.consumer.matrix.model.entity.MatrixReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.matrix.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalMatrixService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalMatrixService() { super(MatrixAnalyzer.ID); @@ -26,12 +25,20 @@ public class LocalMatrixService extends BaseLocalModelService { MatrixReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryMatrixReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private MatrixReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, MatrixAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/LocalMetricService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/LocalMetricService.java index 7eeca426e1f8db213f21092aeba7198b8c86568b..4e65841329e1ee619325752cd504f1a28a337c7a 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/LocalMetricService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/LocalMetricService.java @@ -1,19 +1,18 @@ package com.dianping.cat.report.page.model.metric; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.metric.model.entity.MetricReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.metric.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalMetricService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalMetricService() { super("metric"); @@ -24,12 +23,20 @@ public class LocalMetricService extends BaseLocalModelService { MetricReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryMetricReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private MetricReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, "metric"); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java index ff5c04f1b4fe7af5c466ceba90f947db9d34f6a6..e48c8c7af0d449a1e85f6096e9936a71cb955cd5 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java @@ -1,21 +1,20 @@ package com.dianping.cat.report.page.model.problem; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.problem.ProblemAnalyzer; import com.dianping.cat.consumer.problem.model.entity.ProblemReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalProblemService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalProblemService() { super(ProblemAnalyzer.ID); @@ -26,12 +25,21 @@ public class LocalProblemService extends BaseLocalModelService { ProblemReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryProblemReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private ProblemReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + + try { + bucket = m_bucketManager.getReportBucket(timestamp, ProblemAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/sql/LocalSqlService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/sql/LocalSqlService.java index d09b7aa622b1d987cecc9d6093abc9a72420e34d..8fc26e4bdff82d79edc86f7c1d5d276691d5d423 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/sql/LocalSqlService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/sql/LocalSqlService.java @@ -1,20 +1,19 @@ package com.dianping.cat.report.page.model.sql; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.sql.SqlAnalyzer; import com.dianping.cat.consumer.sql.model.entity.SqlReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.sql.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalSqlService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalSqlService() { super(SqlAnalyzer.ID); @@ -25,12 +24,20 @@ public class LocalSqlService extends BaseLocalModelService { SqlReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.querySqlReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private SqlReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, SqlAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/state/LocalStateService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/state/LocalStateService.java index 3ef0a7f598ed235df2f8dd6856dc35eeb135d723..1c192b273d4ef9d6c8e219d24b04806dc4bddefe 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/state/LocalStateService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/state/LocalStateService.java @@ -1,20 +1,19 @@ package com.dianping.cat.report.page.model.state; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.state.StateAnalyzer; import com.dianping.cat.consumer.state.model.entity.StateReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.state.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalStateService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalStateService() { super(StateAnalyzer.ID); @@ -25,12 +24,20 @@ public class LocalStateService extends BaseLocalModelService { StateReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryStateReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private StateReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, StateAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/top/LocalTopService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/top/LocalTopService.java index 91a39c5a748c79bc56bb73c12820228199d44219..bab58641fd0e148b646d2c71a89f0c75a3645145 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/top/LocalTopService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/top/LocalTopService.java @@ -1,20 +1,19 @@ package com.dianping.cat.report.page.model.top; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.top.TopAnalyzer; import com.dianping.cat.consumer.top.model.entity.TopReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.top.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalTopService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalTopService() { super(TopAnalyzer.ID); @@ -25,12 +24,20 @@ public class LocalTopService extends BaseLocalModelService { TopReport report = super.getReport(request, period, domain); if (report == null && period.isLast()) { - long startTime = request.getStartTime(); - Date start = new Date(startTime); - Date end = new Date(startTime + TimeUtil.ONE_HOUR); - - report = m_reportService.queryTopReport(domain, start, end); + report = getReportFromLocalDisk(request.getStartTime(), domain); } return report; } + + private TopReport getReportFromLocalDisk(long timestamp, String domain) throws Exception { + Bucket bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, TopAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java index 7b259f19a17c54c3605e749a9e3181c14bf97dc2..1f470e8b371a203e1ab3897ddd0a0a52910a8c74 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java @@ -1,20 +1,19 @@ package com.dianping.cat.report.page.model.transaction; -import java.util.Date; - import org.unidal.lookup.annotation.Inject; import com.dianping.cat.consumer.transaction.TransactionAnalyzer; import com.dianping.cat.consumer.transaction.model.entity.TransactionReport; -import com.dianping.cat.helper.TimeUtil; +import com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser; import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService; -import com.dianping.cat.report.service.ReportService; import com.dianping.cat.service.ModelPeriod; import com.dianping.cat.service.ModelRequest; +import com.dianping.cat.storage.Bucket; +import com.dianping.cat.storage.BucketManager; public class LocalTransactionService extends BaseLocalModelService { @Inject - private ReportService m_reportService; + private BucketManager m_bucketManager; public LocalTransactionService() { super(TransactionAnalyzer.ID); @@ -25,13 +24,20 @@ public class LocalTransactionService extends BaseLocalModelService bucket = null; + try { + bucket = m_bucketManager.getReportBucket(timestamp, TransactionAnalyzer.ID); + String xml = bucket.findById(domain); + + return xml == null ? null : DefaultSaxParser.parse(xml); + } finally { + bucket.close(); + } + } } 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 68b2d262ca32af655088e087a8d278f92ac110e3..a8872ee7c2bc8f6cbd5aa2570fa0b758af4720a6 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -1035,7 +1035,7 @@ com.dianping.cat.report.page.model.transaction.LocalTransactionService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1078,7 +1078,7 @@ com.dianping.cat.report.page.model.event.LocalEventService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1121,7 +1121,7 @@ com.dianping.cat.report.page.model.problem.LocalProblemService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1164,7 +1164,7 @@ com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1207,7 +1207,7 @@ com.dianping.cat.report.page.model.matrix.LocalMatrixService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1250,7 +1250,7 @@ com.dianping.cat.report.page.model.state.LocalStateService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1293,7 +1293,7 @@ com.dianping.cat.report.page.model.cross.LocalCrossService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1336,7 +1336,7 @@ com.dianping.cat.report.page.model.sql.LocalSqlService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1379,7 +1379,7 @@ com.dianping.cat.report.page.model.top.LocalTopService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1422,7 +1422,7 @@ com.dianping.cat.report.page.model.dependency.LocalDependencyService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -1465,7 +1465,7 @@ com.dianping.cat.report.page.model.metric.LocalMetricService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2416,7 +2416,7 @@ com.dianping.cat.report.page.model.event.LocalEventService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2428,7 +2428,7 @@ com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2457,7 +2457,7 @@ com.dianping.cat.report.page.model.matrix.LocalMatrixService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2469,7 +2469,7 @@ com.dianping.cat.report.page.model.problem.LocalProblemService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2481,7 +2481,7 @@ com.dianping.cat.report.page.model.transaction.LocalTransactionService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2493,7 +2493,7 @@ com.dianping.cat.report.page.model.cross.LocalCrossService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2505,7 +2505,7 @@ com.dianping.cat.report.page.model.sql.LocalSqlService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2517,7 +2517,7 @@ com.dianping.cat.report.page.model.state.LocalStateService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2529,7 +2529,7 @@ com.dianping.cat.report.page.model.top.LocalTopService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2541,7 +2541,7 @@ com.dianping.cat.report.page.model.metric.LocalMetricService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer @@ -2553,7 +2553,7 @@ com.dianping.cat.report.page.model.dependency.LocalDependencyService - com.dianping.cat.report.service.ReportService + com.dianping.cat.storage.BucketManager com.dianping.cat.message.spi.core.MessageConsumer