提交 fc14bc5e 编写于 作者: Y youyong

refactor the model service

上级 d06c8463
......@@ -8,6 +8,7 @@ import java.util.Set;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
import org.unidal.lookup.annotation.Inject;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
......@@ -26,7 +27,6 @@ import com.dianping.cat.message.spi.AbstractMessageAnalyzer;
import com.dianping.cat.message.spi.MessageTree;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> implements LogEnabled {
@Inject
......@@ -129,6 +129,12 @@ public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> impl
loadReports();
}
// private ProblemReport buildAllReport(){
// ProblemReport report = new ProblemReport(ALL);
//
// return report;
// }
private void storeReports(boolean atEnd) {
DefaultXmlBuilder builder = new DefaultXmlBuilder(true);
......@@ -200,4 +206,33 @@ public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> impl
}
}
}
// static class ProblemReportVisitor extends BaseVisitor{
//
// private ProblemReport m_report;
//
// private String m_currentDomain;
//
// private String m_currentType;
//
// @Override
// public void visitProblemReport(ProblemReport problemReport) {
// m_currentDomain = problemReport.getDomain();
// super.visitProblemReport(problemReport);
// }
//
// @Override
// public void visitSegment(Segment segment) {
// Machine machine = m_report.findOrCreateMachine(m_currentDomain);
// machine.addEntry(entry);
// super.visitSegment(segment);
// }
//
// @Override
// public void visitEntry(Entry entry) {
// m_currentType = entry.getType();
// super.visitEntry(entry);
// }
//
// }
}
......@@ -18,7 +18,6 @@ import com.dianping.cat.consumer.problem.model.entity.Entry;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.consumer.problem.model.entity.Segment;
import com.dianping.cat.consumer.top.model.entity.TopReport;
import com.dianping.cat.consumer.top.model.transform.DefaultSaxParser;
import com.dianping.cat.consumer.top.model.transform.DefaultXmlBuilder;
import com.dianping.cat.consumer.transaction.TransactionAnalyzer;
import com.dianping.cat.consumer.transaction.model.entity.Range2;
......@@ -41,8 +40,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
@Inject
private TaskDao m_taskDao;
private TopReport m_report;
private TransactionAnalyzer m_transactionAnalyzer;
private ProblemAnalyzer m_problemAnalyzer;
......@@ -63,22 +60,22 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
}
public synchronized TopReport getReport(String domain) {
m_report = new TopReport("Cat");
m_report.setStartTime(new Date(m_startTime));
m_report.setEndTime(new Date(m_startTime + 59 * MINUTE));
TopReport topReport = new TopReport("Cat");
topReport.setStartTime(new Date(m_startTime));
topReport.setEndTime(new Date(m_startTime + 60 * MINUTE - 1));
Set<String> domains = m_transactionAnalyzer.getDomains();
for (String temp : domains) {
TransactionReport report = m_transactionAnalyzer.getReport(temp);
new TransactionReportVisitor().visitTransactionReport(report);
new TransactionReportVisitor(topReport).visitTransactionReport(report);
}
for (String temp : domains) {
ProblemReport report = m_problemAnalyzer.getReport(temp);
new ProblemReportVisitor().visitProblemReport(report);
new ProblemReportVisitor(topReport).visitProblemReport(report);
}
return m_report;
return topReport;
}
@Override
......@@ -90,24 +87,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
}
private void loadReports() {
Bucket<String> reportBucket = null;
try {
reportBucket = m_bucketManager.getReportBucket(m_startTime, "top");
for (String id : reportBucket.getIds()) {
String xml = reportBucket.findById(id);
TopReport report = DefaultSaxParser.parse(xml);
m_report = report;
}
} catch (Exception e) {
m_logger.error(String.format("Error when loading top reports of %s!", new Date(m_startTime)), e);
} finally {
if (reportBucket != null) {
m_bucketManager.closeBucket(reportBucket);
}
}
}
@Override
......@@ -131,26 +110,14 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
try {
if (atEnd && !isLocalMode()) {
getReport("Cat");
reportBucket = m_bucketManager.getReportBucket(m_startTime, "top");
try {
String xml = builder.buildXml(m_report);
String domain = m_report.getDomain();
reportBucket.storeById(domain, xml);
} catch (Exception e) {
t.setStatus(e);
Cat.logError(e);
}
TopReport report = getReport("Cat");
Date period = new Date(m_startTime);
String ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress();
try {
Report r = m_reportDao.createLocal();
String xml = builder.buildXml(m_report);
String domain = m_report.getDomain();
String xml = builder.buildXml(report);
String domain = report.getDomain();
r.setName("top");
r.setDomain(domain);
......@@ -192,6 +159,12 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
private String m_type;
private TopReport m_report;
public TransactionReportVisitor(TopReport report) {
m_report = report;
}
@Override
public void visitTransactionReport(TransactionReport transactionReport) {
m_domain = transactionReport.getDomain();
......@@ -242,6 +215,12 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
private String m_type;
private TopReport m_report;
public ProblemReportVisitor(TopReport report) {
m_report = report;
}
@Override
public void visitProblemReport(ProblemReport problemReport) {
m_domain = problemReport.getDomain();
......
......@@ -31,6 +31,7 @@ import com.dianping.cat.consumer.transaction.model.entity.Range2;
import com.dianping.cat.consumer.transaction.model.entity.TransactionName;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.consumer.transaction.model.entity.TransactionType;
import com.dianping.cat.consumer.transaction.model.transform.BaseVisitor;
import com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser;
import com.dianping.cat.message.Message;
import com.dianping.cat.message.Transaction;
......@@ -96,7 +97,8 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
@Override
public Set<String> getDomains() {
return m_reports.keySet();
Set<String> keySet = m_reports.keySet();
return keySet;
}
@Override
......@@ -168,12 +170,11 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
if (report == null) {
report = new TransactionReport(domain);
report.setStartTime(new Date(m_startTime));
report.setEndTime(new Date(m_startTime + MINUTE * 60 - 1));
m_reports.put(domain, report);
}
Message message = tree.getMessage();
report.addIp(tree.getIpAddress());
......@@ -321,12 +322,26 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
loadReports();
}
private TransactionReport buildTotalTransactionReport() {
TransactionReport all = new TransactionReport(ALL);
all.setStartTime(new Date(m_startTime));
all.setEndTime(new Date(m_startTime + MINUTE * 60 - 1));
TransactionReportVisitor visitor = new TransactionReportVisitor(all);
for (TransactionReport temp : m_reports.values()) {
all.getIps().add(temp.getDomain());
all.getDomainNames().add(temp.getDomain());
visitor.visitTransactionReport(temp);
}
return all;
}
private void storeReports(boolean atEnd) {
Bucket<String> reportBucket = null;
Transaction t = Cat.getProducer().newTransaction("Checkpoint", getClass().getSimpleName());
t.setStatus(Message.SUCCESS);
try {
reportBucket = m_bucketManager.getReportBucket(m_startTime, "transaction");
......@@ -351,6 +366,9 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
if (atEnd && !isLocalMode()) {
Date period = new Date(m_startTime);
String ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress();
TransactionReport all = buildTotalTransactionReport();
m_reports.put(ALL, all);
for (TransactionReport report : m_reports.values()) {
try {
......@@ -394,4 +412,68 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
}
}
static class TransactionReportVisitor extends BaseVisitor {
private TransactionReport m_report;
public String m_currentDomain;
public TransactionReportVisitor(TransactionReport report) {
m_report = report;
}
@Override
public void visitTransactionReport(TransactionReport transactionReport) {
m_currentDomain = transactionReport.getDomain();
super.visitTransactionReport(transactionReport);
}
@Override
public void visitType(TransactionType type) {
Machine machine = m_report.findOrCreateMachine(m_currentDomain);
String typeName = type.getId();
if (typeName.equals("URL") || typeName.equals("Call") || typeName.equals("PigeonCall")
|| typeName.equals("PigeonService") || typeName.equals("Service") || typeName.equals("SQL")
|| typeName.startsWith("Cache.") || typeName.equals("MsgProduceTried") || typeName.equals("MsgProduced")) {
TransactionType result = machine.findOrCreateType(typeName);
mergeType(result, type);
}
}
private void mergeType(TransactionType old, TransactionType other) {
old.setTotalCount(old.getTotalCount() + other.getTotalCount());
old.setFailCount(old.getFailCount() + other.getFailCount());
if (other.getMin() < old.getMin()) {
old.setMin(other.getMin());
}
if (other.getMax() > old.getMax()) {
old.setMax(other.getMax());
}
old.setSum(old.getSum() + other.getSum());
old.setSum2(old.getSum2() + other.getSum2());
old.setLine95Sum(old.getLine95Sum() + other.getLine95Sum());
old.setLine95Count(old.getLine95Count() + other.getLine95Count());
if (old.getLine95Count() > 0) {
old.setLine95Value(old.getLine95Sum() / old.getLine95Count());
}
if (old.getTotalCount() > 0) {
old.setFailPercent(old.getFailCount() * 100.0 / old.getTotalCount());
old.setAvg(old.getSum() / old.getTotalCount());
}
if (old.getSuccessMessageUrl() == null) {
old.setSuccessMessageUrl(other.getSuccessMessageUrl());
}
if (old.getFailMessageUrl() == null) {
old.setFailMessageUrl(other.getFailMessageUrl());
}
}
}
}
......@@ -23,6 +23,8 @@ public abstract class AbstractMessageAnalyzer<R> extends ContainerHolder impleme
private volatile boolean m_active = true;
protected static final String ALL = "All";
@Override
public void analyze(MessageQueue queue) {
while (!isTimeout() && isActive()) {
......@@ -86,7 +88,7 @@ public abstract class AbstractMessageAnalyzer<R> extends ContainerHolder impleme
// pigeon default heartbeat is no use
String type = t.getType();
String name = t.getName();
if ((("Service").equals(type) || ("PigeonService").equals(type))
&& (("piegonService:heartTaskService:heartBeat").equals(name)
|| ("piegonService:heartTaskService:heartBeat()").equals(name) || ("pigeon:HeartBeatService:null")
......
......@@ -2,13 +2,18 @@ package com.dianping.cat;
import java.io.File;
import org.unidal.helper.Threads;
import org.unidal.initialization.AbstractModule;
import org.unidal.initialization.Module;
import org.unidal.initialization.ModuleContext;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.CatConsumerModule;
import com.dianping.cat.job.CatJobModule;
import com.dianping.cat.message.io.TcpSocketReceiver;
import com.dianping.cat.message.spi.MessageConsumer;
import com.dianping.cat.report.task.thread.TaskProducer;
import com.dianping.cat.report.task.thread.DefaultTaskConsumer;
import com.dianping.cat.report.task.thread.TaskProducer;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.system.alarm.AlarmRuleCreator;
import com.dianping.cat.system.alarm.AlarmTask;
......@@ -17,10 +22,6 @@ import com.dianping.cat.system.alarm.threshold.listener.ServiceDataListener;
import com.dianping.cat.system.alarm.threshold.listener.ThresholdAlertListener;
import com.dianping.cat.system.event.EventListenerRegistry;
import com.dianping.cat.system.notify.ScheduledMailTask;
import org.unidal.helper.Threads;
import org.unidal.initialization.AbstractModule;
import org.unidal.initialization.Module;
import org.unidal.initialization.ModuleContext;
public class CatHomeModule extends AbstractModule {
public static final String ID = "cat-home";
......
......@@ -3,6 +3,9 @@ package com.dianping.cat.build;
import java.util.ArrayList;
import java.util.List;
import org.unidal.lookup.configuration.AbstractResourceConfigurator;
import org.unidal.lookup.configuration.Component;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.home.dal.alarm.AlarmRuleDao;
import com.dianping.cat.home.dal.alarm.AlarmTemplateDao;
......@@ -30,8 +33,6 @@ import com.dianping.cat.system.page.alarm.RuleManager;
import com.dianping.cat.system.page.alarm.ScheduledManager;
import com.dianping.cat.system.tool.MailSMS;
import com.dianping.cat.system.tool.MailSMSImpl;
import org.unidal.lookup.configuration.AbstractResourceConfigurator;
import org.unidal.lookup.configuration.Component;
public class AlarmComponentConfigurator extends AbstractResourceConfigurator {
......
......@@ -6,7 +6,6 @@ import java.util.List;
import org.unidal.lookup.configuration.AbstractResourceConfigurator;
import org.unidal.lookup.configuration.Component;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.hadoop.hdfs.HdfsMessageBucketManager;
import com.dianping.cat.message.spi.MessageCodec;
......@@ -48,6 +47,7 @@ import com.dianping.cat.report.page.model.top.LocalTopService;
import com.dianping.cat.report.page.model.transaction.CompositeTransactionService;
import com.dianping.cat.report.page.model.transaction.HistoricalTransactionService;
import com.dianping.cat.report.page.model.transaction.LocalTransactionService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.BucketManager;
import com.dianping.cat.storage.dump.LocalMessageBucketManager;
import com.dianping.cat.storage.dump.MessageBucketManager;
......@@ -58,82 +58,82 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
List<Component> all = new ArrayList<Component>();
all.add(C(ModelService.class, "transaction-local", LocalTransactionService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "transaction-historical", HistoricalTransactionService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "transaction", CompositeTransactionService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "transaction-historical" }, "m_services"));
all.add(C(ModelService.class, "event-local", LocalEventService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "event-historical", HistoricalEventService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "event", CompositeEventService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "event-historical" }, "m_services"));
all.add(C(ModelService.class, "problem-local", LocalProblemService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "problem-historical", HistoricalProblemService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "problem", CompositeProblemService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "problem-historical" }, "m_services"));
all.add(C(ModelService.class, "heartbeat-local", LocalHeartbeatService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "heartbeat-historical", HistoricalHeartbeatService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "heartbeat", CompositeHeartbeatService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "heartbeat-historical" }, "m_services"));
all.add(C(ModelService.class, "matrix-local", LocalMatrixService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "matrix-historical", HistoricalMatrixService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "matrix", CompositeMatrixService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "matrix-historical" }, "m_services"));
all.add(C(ModelService.class, "state-local", LocalStateService.class) //
.req(BucketManager.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "state-historical", HistoricalStateService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "state", CompositeStateService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "state-historical" }, "m_services"));
all.add(C(ModelService.class, "cross-local", LocalCrossService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "cross-historical", HistoricalCrossService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "cross", CompositeCrossService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "cross-historical" }, "m_services"));
all.add(C(ModelService.class, "database-local", LocalDatabaseService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "database-historical", HistoricalDatabaseService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "database", CompositeDatabaseService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "database-historical" }, "m_services"));
all.add(C(ModelService.class, "sql-local", LocalSqlService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "sql-historical", HistoricalSqlService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "sql", CompositeSqlService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "sql-historical" }, "m_services"));
......@@ -142,7 +142,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.req(BucketManager.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "ip-historical", HistoricalIpService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "ip", CompositeIpService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "ip-historical" }, "m_services"));
......@@ -157,21 +157,14 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.req(MessageCodec.class, "html"));
all.add(C(ModelService.class, "top-local", LocalTopService.class) //
.req(BucketManager.class, ReportDao.class) //
.req(BucketManager.class, ReportService.class) //
.req(MessageConsumer.class, "realtime"));
all.add(C(ModelService.class, "top-historical", HistoricalTopService.class) //
.req(BucketManager.class, ReportDao.class));
.req(BucketManager.class, ReportService.class));
all.add(C(ModelService.class, "top", CompositeTopService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "top-historical" }, "m_services"));
// all.add(C(ModelService.class, "logview-local", LocalLogViewService.class) //
// .req(MessageConsumer.class, "realtime") //
// .req(BucketManager.class) //
// .req(MessageCodec.class, "html"));
// all.add(C(ModelService.class, "logview-historical", HistoricalLogViewService.class) //
// .req(BucketManager.class, InputChannelManager.class) //
// .req(MessageCodec.class, "html"));
all.add(C(ModelService.class, "logview", CompositeLogViewService.class) //
.req(ServerConfigManager.class) //
.req(ModelService.class, new String[] { "message-historical", "logview-historical" }, "m_services"));
......
......@@ -3,12 +3,12 @@ package com.dianping.cat.build;
import java.util.ArrayList;
import java.util.List;
import com.dianping.cat.report.ReportModule;
import com.dianping.cat.system.SystemModule;
import org.unidal.lookup.configuration.Component;
import org.unidal.web.configuration.AbstractWebComponentsConfigurator;
import com.dianping.cat.report.ReportModule;
import com.dianping.cat.system.SystemModule;
class WebComponentConfigurator extends AbstractWebComponentsConfigurator {
@SuppressWarnings("unchecked")
@Override
......
......@@ -6,6 +6,10 @@ import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.Page;
import org.unidal.webres.resource.runtime.ResourceConfigurator;
import org.unidal.webres.resource.runtime.ResourceInitializer;
import org.unidal.webres.resource.runtime.ResourceRuntime;
......@@ -14,11 +18,6 @@ import org.unidal.webres.resource.spi.IResourceRegistry;
import org.unidal.webres.tag.resource.ResourceTagConfigurator;
import org.unidal.webres.taglib.basic.ResourceTagLibConfigurator;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.Page;
public class ReportContext<T extends ActionPayload<? extends Page, ? extends Action>> extends ActionContext<T> {
@Override
......
......@@ -6,15 +6,16 @@ import java.util.Collection;
import java.util.Date;
import java.util.Map;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ViewModel;
import com.dainping.cat.consumer.dal.report.Project;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.view.DomainNavManager;
import com.dianping.cat.report.view.DomainNavManager.Department;
import com.dianping.cat.report.view.HistoryNav;
import com.dianping.cat.report.view.UrlNav;
import com.dianping.cat.report.view.DomainNavManager.Department;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ViewModel;
public abstract class AbstractReportModel<A extends Action, M extends ActionContext<?>> extends
ViewModel<ReportPage, A, M> {
......
......@@ -5,13 +5,14 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
public abstract class AbstractReportPayload<A extends Action> implements ActionPayload<ReportPage, A> {
@FieldMeta("endDate")
......
......@@ -5,6 +5,13 @@ import java.util.Date;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.configuration.ServerConfigManager;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
......@@ -21,12 +28,6 @@ import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.page.model.transaction.TransactionReportMerger;
import com.dianping.cat.report.service.ReportService;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......
package com.dianping.cat.report.page.cache;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.cache;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -8,16 +8,16 @@ import java.util.Set;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.unidal.dal.jdbc.DalException;
import org.unidal.helper.Threads;
import org.unidal.helper.Threads.Task;
import org.unidal.lookup.annotation.Inject;
import com.dainping.cat.consumer.dal.report.Hostinfo;
import com.dainping.cat.consumer.dal.report.HostinfoDao;
import com.dainping.cat.consumer.dal.report.HostinfoEntity;
import com.dianping.cat.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import org.unidal.dal.jdbc.DalException;
import org.unidal.helper.Threads;
import org.unidal.helper.Threads.Task;
import org.unidal.lookup.annotation.Inject;
public class DomainManager implements Initializable {
......
package com.dianping.cat.report.page.cross;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.cross;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
private static int HOUR = 60 * 60 * 1000;
......
......@@ -12,6 +12,11 @@ import java.util.Map.Entry;
import javax.servlet.ServletException;
import org.apache.commons.lang.StringUtils;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
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.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
......@@ -30,11 +35,6 @@ import com.dianping.cat.report.page.problem.ProblemStatistics;
import com.dianping.cat.report.page.problem.ProblemStatistics.StatusStatistics;
import com.dianping.cat.report.page.problem.ProblemStatistics.TypeStatistics;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject
......
package com.dianping.cat.report.page.dashboard;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.dashboard;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.ViewModel;
import com.dianping.cat.report.ReportPage;
public class Model extends ViewModel<ReportPage, Action, Context> {
private String m_data;
......
package com.dianping.cat.report.page.dashboard;
import org.apache.commons.lang.StringUtils;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
public class Payload implements ActionPayload<ReportPage, Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -5,6 +5,13 @@ import java.util.Date;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.database.model.entity.DatabaseReport;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
......@@ -13,12 +20,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.service.ReportService;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
/**
* @author youyong
......
package com.dianping.cat.report.page.database;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.database;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
private ReportPage m_page;
......
......@@ -7,12 +7,13 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.unidal.lookup.util.StringUtils;
import com.dianping.cat.Cat;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.entity.EventType;
import com.dianping.cat.consumer.event.model.entity.Machine;
import org.unidal.lookup.util.StringUtils;
public class DisplayNames {
......
......@@ -9,11 +9,12 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.unidal.lookup.util.StringUtils;
import com.dianping.cat.CatConstants;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.entity.EventType;
import com.dianping.cat.consumer.event.model.entity.Machine;
import org.unidal.lookup.util.StringUtils;
public class DisplayTypes {
......
......@@ -8,6 +8,13 @@ import java.util.List;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.event.StatisticsComputer;
......@@ -25,12 +32,6 @@ import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.service.ReportService;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......
package com.dianping.cat.report.page.event;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.event;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -6,6 +6,13 @@ import java.util.Date;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.health.model.entity.HealthReport;
......@@ -14,12 +21,6 @@ import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.HistoryGraphItem;
import com.dianping.cat.report.service.ReportService;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......
......@@ -4,11 +4,12 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.health.model.entity.HealthReport;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.HistoryGraphItem;
import com.dianping.cat.report.service.ReportService;
import org.unidal.lookup.annotation.Inject;
public class HistoryGraphs {
......
package com.dianping.cat.report.page.health;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.health;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -7,6 +7,14 @@ import java.util.Set;
import javax.servlet.ServletException;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport;
......@@ -21,13 +29,6 @@ import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.view.StringSortHelper;
import com.google.gson.Gson;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject
......
package com.dianping.cat.report.page.heartbeat;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.heartbeat;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -8,11 +8,6 @@ import java.util.List;
import javax.servlet.ServletException;
import com.dianping.cat.Cat;
import com.dianping.cat.job.sql.dal.LocationRecord;
import com.dianping.cat.job.sql.dal.LocationRecordDao;
import com.dianping.cat.job.sql.dal.LocationRecordEntity;
import com.dianping.cat.report.ReportPage;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
......@@ -20,6 +15,12 @@ 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.Cat;
import com.dianping.cat.job.sql.dal.LocationRecord;
import com.dianping.cat.job.sql.dal.LocationRecordDao;
import com.dianping.cat.job.sql.dal.LocationRecordEntity;
import com.dianping.cat.report.ReportPage;
public class Handler implements PageHandler<Context> {
@Inject
private LocationRecordDao m_dao;
......
package com.dianping.cat.report.page.heatmap;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.heatmap;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -8,15 +8,16 @@ import java.util.TreeMap;
import javax.servlet.ServletException;
import com.dianping.cat.consumer.RealtimeConsumer;
import com.dianping.cat.message.spi.MessageConsumer;
import com.dianping.cat.report.ReportPage;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
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.RealtimeConsumer;
import com.dianping.cat.message.spi.MessageConsumer;
import com.dianping.cat.report.ReportPage;
public class Handler implements PageHandler<Context> {
@Inject
private JspViewer m_jspViewer;
......
package com.dianping.cat.report.page.home;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.home;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -12,6 +12,13 @@ import java.util.Map;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.ip.model.entity.Ip;
......@@ -26,12 +33,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject
......
package com.dianping.cat.report.page.ip;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.ip;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
......@@ -5,6 +5,12 @@ import java.util.Date;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.internal.MessageId;
......@@ -14,11 +20,6 @@ import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject
......
package com.dianping.cat.report.page.logview;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
......@@ -2,12 +2,13 @@ package com.dianping.cat.report.page.logview;
import java.util.Arrays;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import org.unidal.web.mvc.payload.annotation.PathMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action = Action.VIEW;
......
package com.dianping.cat.report.page.matrix;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.matrix;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
package com.dianping.cat.report.page.model;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.model;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.ViewModel;
import com.dianping.cat.report.ReportPage;
public class Model extends ViewModel<ReportPage, Action, Context> {
private Throwable m_exception;
......
......@@ -2,13 +2,14 @@ package com.dianping.cat.report.page.model;
import java.util.Arrays;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import org.unidal.web.mvc.payload.annotation.PathMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
public class Payload implements ActionPayload<ReportPage, Action> {
@FieldMeta("op")
private Action m_action;
......
package com.dianping.cat.report.page.model.cross;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.cross.model.entity.CrossReport;
import com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalCrossService extends BaseHistoricalModelService<CrossReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalCrossService() {
super("cross");
......@@ -42,28 +40,7 @@ public class HistoricalCrossService extends BaseHistoricalModelService<CrossRepo
}
private CrossReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
CrossReportMerger merger = new CrossReportMerger(new CrossReport(domain));
for (Report report : reports) {
String xml = report.getContent();
CrossReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
CrossReport crossReport = merger.getCrossReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "cross", ReportEntity.READSET_DOMAIN_NAME);
if (crossReport == null) {
crossReport = new CrossReport(domain);
}
Set<String> domainNames = crossReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return crossReport;
return m_reportSerivce.queryCrossReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private CrossReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.cross;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.cross.model.entity.CrossReport;
import com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalCrossService extends BaseLocalModelService<CrossReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalCrossService() {
super("cross");
......@@ -40,22 +39,24 @@ public class LocalCrossService extends BaseLocalModelService<CrossReport> {
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new CrossReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryCrossReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "cross", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new CrossReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
return report;
}
}
package com.dianping.cat.report.page.model.database;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.database.model.entity.DatabaseReport;
import com.dianping.cat.consumer.database.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalDatabaseService extends BaseHistoricalModelService<DatabaseReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalDatabaseService() {
super("database");
......@@ -43,28 +41,7 @@ public class HistoricalDatabaseService extends BaseHistoricalModelService<Databa
}
private DatabaseReport getReportFromDatabase(long timestamp, String database) throws Exception {
List<Report> reports = m_reportDao.findDatabaseAllByPeriodDomainTypeName(new Date(timestamp), database, 2, getName(),
ReportEntity.READSET_FULL);
DatabaseReportMerger merger = new DatabaseReportMerger(new DatabaseReport(database));
for (Report report : reports) {
String xml = report.getContent();
DatabaseReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
DatabaseReport databaseReport = merger.getDatabaseReport();
List<Report> historyReports = m_reportDao.findDatabaseAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "database", ReportEntity.READSET_DOMAIN_NAME);
if (databaseReport == null) {
databaseReport = new DatabaseReport(database);
}
Set<String> dataBaseNames = databaseReport.getDatabaseNames();
for (Report report : historyReports) {
dataBaseNames.add(report.getDomain());
}
return databaseReport;
return m_reportSerivce.queryDatabaseReport(database, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private DatabaseReport getReportFromLocalDisk(long timestamp, String database) throws Exception {
......
package com.dianping.cat.report.page.model.database;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.database.model.entity.DatabaseReport;
import com.dianping.cat.consumer.database.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalDatabaseService extends BaseLocalModelService<DatabaseReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalDatabaseService() {
super("database");
......@@ -40,22 +39,24 @@ public class LocalDatabaseService extends BaseLocalModelService<DatabaseReport>
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, database);
if (report == null) {
report = new DatabaseReport(database);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryDatabaseReport(database, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "database", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new DatabaseReport(database);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, database);
Set<String> domainNames = report.getDomainNames();
Set<String> databaseNames = report.getDatabaseNames();
for (Report temp : historyReports) {
databaseNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
return report;
}
}
package com.dianping.cat.report.page.model.event;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalEventService extends BaseHistoricalModelService<EventReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalEventService() {
super("event");
......@@ -42,28 +40,7 @@ public class HistoricalEventService extends BaseHistoricalModelService<EventRepo
}
private EventReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
EventReportMerger merger = new EventReportMerger(new EventReport(domain));
for (Report report : reports) {
String xml = report.getContent();
EventReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
EventReport eventReport = merger.getEventReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "event", ReportEntity.READSET_DOMAIN_NAME);
if (eventReport == null) {
eventReport = new EventReport(domain);
}
Set<String> domainNames = eventReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return eventReport;
return m_reportSerivce.queryEventReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private EventReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.event;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.event.model.entity.EventReport;
import com.dianping.cat.consumer.event.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalEventService extends BaseLocalModelService<EventReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalEventService() {
super("event");
......@@ -40,22 +39,24 @@ public class LocalEventService extends BaseLocalModelService<EventReport> {
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new EventReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryEventReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "event", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new EventReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
return report;
}
}
package com.dianping.cat.report.page.model.heartbeat;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport;
import com.dianping.cat.consumer.heartbeat.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalHeartbeatService extends BaseHistoricalModelService<HeartbeatReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalHeartbeatService() {
super("heartbeat");
......@@ -42,29 +40,7 @@ public class HistoricalHeartbeatService extends BaseHistoricalModelService<Heart
}
private HeartbeatReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
HeartbeatReportMerger merger = new HeartbeatReportMerger(new HeartbeatReport(domain));
for (Report report : reports) {
String xml = report.getContent();
HeartbeatReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
HeartbeatReport heartbeatReport = merger.getHeartbeatReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "heartbeat", ReportEntity.READSET_DOMAIN_NAME);
if (heartbeatReport == null) {
heartbeatReport = new HeartbeatReport(domain);
}
Set<String> domainNames = heartbeatReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return heartbeatReport;
return m_reportSerivce.queryHeartbeatReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private HeartbeatReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.heartbeat;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport;
import com.dianping.cat.consumer.heartbeat.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalHeartbeatService extends BaseLocalModelService<HeartbeatReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalHeartbeatService() {
super("heartbeat");
......@@ -40,19 +39,20 @@ public class LocalHeartbeatService extends BaseLocalModelService<HeartbeatReport
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new HeartbeatReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryHeartbeatReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "heartbeat", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new HeartbeatReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
......
package com.dianping.cat.report.page.model.ip;
import java.util.Date;
import java.util.List;
import org.unidal.lookup.annotation.Inject;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import com.dianping.cat.consumer.ip.model.entity.IpReport;
import com.dianping.cat.consumer.ip.model.transform.DefaultSaxParser;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalIpService extends BaseHistoricalModelService<IpReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalIpService() {
super("ip");
......@@ -41,22 +37,7 @@ public class HistoricalIpService extends BaseHistoricalModelService<IpReport> {
}
private IpReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
IpReportMerger merger = null;
for (Report report : reports) {
String xml = report.getContent();
IpReport model = DefaultSaxParser.parse(xml);
if (merger == null) {
merger = new IpReportMerger(model);
} else {
model.accept(merger);
}
}
return merger == null ? null : merger.getIpReport();
return new IpReport();
}
private IpReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.ip;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.ip.model.entity.IpReport;
import com.dianping.cat.consumer.ip.model.transform.DefaultSaxParser;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
......@@ -7,7 +9,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalIpService extends BaseLocalModelService<IpReport> {
@Inject
......
......@@ -4,6 +4,7 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.hadoop.hdfs.HdfsMessageBucketManager;
import com.dianping.cat.message.Transaction;
......@@ -16,7 +17,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.storage.dump.LocalMessageBucketManager;
import com.dianping.cat.storage.dump.MessageBucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalMessageService extends BaseLocalModelService<String> {
@Inject(LocalMessageBucketManager.ID)
......
......@@ -4,6 +4,7 @@ import java.nio.charset.Charset;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.MessageId;
......@@ -14,7 +15,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.storage.dump.LocalMessageBucketManager;
import com.dianping.cat.storage.dump.MessageBucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalMessageService extends BaseLocalModelService<String> {
@Inject(LocalMessageBucketManager.ID)
......
package com.dianping.cat.report.page.model.matrix;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.matrix.model.entity.MatrixReport;
import com.dianping.cat.consumer.matrix.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalMatrixService extends BaseHistoricalModelService<MatrixReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalMatrixService() {
super("matrix");
......@@ -42,27 +40,7 @@ public class HistoricalMatrixService extends BaseHistoricalModelService<MatrixRe
}
private MatrixReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
MatrixReportMerger merger = new MatrixReportMerger(new MatrixReport(domain));
for (Report report : reports) {
String xml = report.getContent();
MatrixReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
MatrixReport matrixReport = merger.getMatrixReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "matrix", ReportEntity.READSET_DOMAIN_NAME);
if (matrixReport != null && historyReports != null) {
Set<String> domainNames = matrixReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
}
return merger == null ? null : matrixReport;
return m_reportSerivce.queryMatrixReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private MatrixReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.matrix;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.matrix.model.entity.MatrixReport;
import com.dianping.cat.consumer.matrix.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalMatrixService extends BaseLocalModelService<MatrixReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalMatrixService() {
super("matrix");
......@@ -40,19 +39,20 @@ public class LocalMatrixService extends BaseLocalModelService<MatrixReport> {
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new MatrixReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryMatrixReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "matrix", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new MatrixReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
......
package com.dianping.cat.report.page.model.problem;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalProblemService extends BaseHistoricalModelService<ProblemReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalProblemService() {
super("problem");
......@@ -42,28 +40,7 @@ public class HistoricalProblemService extends BaseHistoricalModelService<Problem
}
private ProblemReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
ProblemReportMerger merger = new ProblemReportMerger(new ProblemReport(domain));
for (Report report : reports) {
String xml = report.getContent();
ProblemReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
ProblemReport problemReport = merger.getProblemReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "problem", ReportEntity.READSET_DOMAIN_NAME);
if (problemReport == null) {
problemReport = new ProblemReport(domain);
}
Set<String> domainNames = problemReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return problemReport;
return m_reportSerivce.queryProblemReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private ProblemReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.problem;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalProblemService extends BaseLocalModelService<ProblemReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalProblemService() {
super("problem");
......@@ -40,19 +39,20 @@ public class LocalProblemService extends BaseLocalModelService<ProblemReport> {
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new ProblemReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryProblemReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "problem", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new ProblemReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
......
......@@ -8,6 +8,9 @@ import java.util.concurrent.TimeUnit;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.unidal.helper.Splitters;
import org.unidal.helper.Threads;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
......@@ -16,9 +19,6 @@ import com.dianping.cat.message.Transaction;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import org.unidal.helper.Splitters;
import org.unidal.helper.Threads;
import org.unidal.lookup.annotation.Inject;
public abstract class BaseCompositeModelService<T> extends ModelServiceWithCalSupport implements ModelService<T>,
Initializable {
......
......@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.model.spi.internal;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.RealtimeConsumer;
......@@ -14,7 +15,6 @@ import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import org.unidal.lookup.annotation.Inject;
public abstract class BaseLocalModelService<T> extends ModelServiceWithCalSupport implements ModelService<T>,
Initializable {
......
......@@ -5,6 +5,8 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map.Entry;
import org.unidal.helper.Files;
import org.unidal.lookup.annotation.Inject;
import org.xml.sax.SAXException;
import com.dianping.cat.message.Message;
......@@ -13,8 +15,6 @@ import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import org.unidal.helper.Files;
import org.unidal.lookup.annotation.Inject;
public abstract class BaseRemoteModelService<T> extends ModelServiceWithCalSupport implements ModelService<T> {
@Inject
......
......@@ -3,11 +3,12 @@ package com.dianping.cat.report.page.model.spi.internal;
import java.io.PrintWriter;
import java.io.StringWriter;
import org.unidal.lookup.ContainerHolder;
import com.dianping.cat.Cat;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.DefaultMessageProducer;
import org.unidal.lookup.ContainerHolder;
public abstract class ModelServiceWithCalSupport extends ContainerHolder {
private Transaction m_current;
......
package com.dianping.cat.report.page.model.sql;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.sql.model.entity.SqlReport;
import com.dianping.cat.consumer.sql.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalSqlService extends BaseHistoricalModelService<SqlReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalSqlService() {
super("sql");
......@@ -42,28 +40,7 @@ public class HistoricalSqlService extends BaseHistoricalModelService<SqlReport>
}
private SqlReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
SqlReportMerger merger = new SqlReportMerger(new SqlReport(domain));
for (Report report : reports) {
String xml = report.getContent();
SqlReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
SqlReport sqlReport = merger.getSqlReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "sql", ReportEntity.READSET_DOMAIN_NAME);
if (sqlReport == null) {
sqlReport = new SqlReport(domain);
}
Set<String> domainNames = sqlReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return sqlReport;
return m_reportSerivce.querySqlReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private SqlReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.sql;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.sql.model.entity.SqlReport;
import com.dianping.cat.consumer.sql.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalSqlService extends BaseLocalModelService<SqlReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalSqlService() {
super("sql");
......@@ -40,22 +39,24 @@ public class LocalSqlService extends BaseLocalModelService<SqlReport> {
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new SqlReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.querySqlReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "sql", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new SqlReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
return report;
}
}
package com.dianping.cat.report.page.model.state;
import java.util.Date;
import java.util.List;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.state.model.entity.StateReport;
import com.dianping.cat.consumer.state.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalStateService extends BaseHistoricalModelService<StateReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalStateService() {
super("state");
......@@ -41,18 +40,7 @@ public class HistoricalStateService extends BaseHistoricalModelService<StateRepo
}
private StateReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
StateReportMerger merger = new StateReportMerger(new StateReport(domain));
for (Report report : reports) {
String xml = report.getContent();
StateReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
StateReport stateReport = merger.getStateReport();
return merger == null ? null : stateReport;
return m_reportSerivce.queryStateReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private StateReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.top;
import java.util.Date;
import java.util.List;
import org.unidal.lookup.annotation.Inject;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import com.dianping.cat.consumer.top.model.entity.TopReport;
import com.dianping.cat.consumer.top.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
......@@ -20,7 +18,7 @@ public class HistoricalTopService extends BaseHistoricalModelService<TopReport>
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalTopService() {
super("top");
......@@ -42,18 +40,7 @@ public class HistoricalTopService extends BaseHistoricalModelService<TopReport>
}
private TopReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
TopReportMerger merger = new TopReportMerger(new TopReport(domain));
for (Report report : reports) {
String xml = report.getContent();
TopReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
TopReport topReport = merger.getTopReport();
return topReport;
return m_reportSerivce.queryTopReport(domain, new Date(timestamp), new Date(timestamp + TimeUtil.ONE_HOUR));
}
private TopReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
......@@ -2,12 +2,12 @@ package com.dianping.cat.report.page.model.top;
import org.unidal.lookup.annotation.Inject;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dianping.cat.consumer.top.model.entity.TopReport;
import com.dianping.cat.consumer.top.model.transform.DefaultSaxParser;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
......@@ -16,7 +16,7 @@ public class LocalTopService extends BaseLocalModelService<TopReport> {
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalTopService() {
super("top");
......
package com.dianping.cat.report.page.model.transaction;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseHistoricalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class HistoricalTransactionService extends BaseHistoricalModelService<TransactionReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public HistoricalTransactionService() {
super("transaction");
......@@ -42,28 +40,8 @@ public class HistoricalTransactionService extends BaseHistoricalModelService<Tra
}
private TransactionReport getReportFromDatabase(long timestamp, String domain) throws Exception {
List<Report> reports = m_reportDao.findAllByPeriodDomainTypeName(new Date(timestamp), domain, 1, getName(),
ReportEntity.READSET_FULL);
TransactionReportMerger merger = new TransactionReportMerger(new TransactionReport(domain));
for (Report report : reports) {
String xml = report.getContent();
TransactionReport model = DefaultSaxParser.parse(xml);
model.accept(merger);
}
TransactionReport transactionReport = merger.getTransactionReport();
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(timestamp), new Date(
timestamp + 60 * 60 * 1000), null, "transaction", ReportEntity.READSET_DOMAIN_NAME);
if (transactionReport == null) {
transactionReport = new TransactionReport(domain);
}
Set<String> domainNames = transactionReport.getDomainNames();
for (Report report : historyReports) {
domainNames.add(report.getDomain());
}
return transactionReport;
return m_reportSerivce.queryTransactionReport(domain, new Date(timestamp),
new Date(timestamp + TimeUtil.ONE_HOUR));
}
private TransactionReport getReportFromLocalDisk(long timestamp, String domain) throws Exception {
......
package com.dianping.cat.report.page.model.transaction;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.dainping.cat.consumer.dal.report.Report;
import com.dainping.cat.consumer.dal.report.ReportDao;
import com.dainping.cat.consumer.dal.report.ReportEntity;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService;
import com.dianping.cat.report.service.ReportService;
import com.dianping.cat.storage.Bucket;
import com.dianping.cat.storage.BucketManager;
import org.unidal.lookup.annotation.Inject;
public class LocalTransactionService extends BaseLocalModelService<TransactionReport> {
@Inject
private BucketManager m_bucketManager;
@Inject
private ReportDao m_reportDao;
private ReportService m_reportSerivce;
public LocalTransactionService() {
super("transaction");
......@@ -40,19 +39,20 @@ public class LocalTransactionService extends BaseLocalModelService<TransactionRe
if (report == null && period.isLast()) {
long current = System.currentTimeMillis();
long hour = 60 * 60 * 1000;
long date = current - current % (hour) - hour;
long date = current - current % (TimeUtil.ONE_HOUR) - TimeUtil.ONE_HOUR;
report = getLocalReport(date, domain);
if (report == null) {
report = new TransactionReport(domain);
Date start = new Date(date);
Date end = new Date(date + TimeUtil.ONE_HOUR);
report = m_reportSerivce.queryTransactionReport(domain, start, end);
List<Report> historyReports = m_reportDao.findAllByDomainNameDuration(new Date(date), new Date(
date + 60 * 60 * 1000), null, "transaction", ReportEntity.READSET_DOMAIN_NAME);
if (report == null) {
report = new TransactionReport(domain);
Set<String> domains = m_reportSerivce.queryAllDomainNames(start, end, domain);
Set<String> domainNames = report.getDomainNames();
Set<String> domainNames = report.getDomainNames();
for (Report temp : historyReports) {
domainNames.add(temp.getDomain());
domainNames.addAll(domains);
}
}
}
......
......@@ -7,6 +7,8 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.unidal.lookup.util.StringUtils;
import com.dianping.cat.consumer.problem.model.entity.Entry;
import com.dianping.cat.consumer.problem.model.entity.JavaThread;
import com.dianping.cat.consumer.problem.model.entity.Machine;
......@@ -14,7 +16,6 @@ import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.consumer.problem.model.entity.Segment;
import com.dianping.cat.consumer.problem.model.transform.BaseVisitor;
import com.dianping.cat.helper.MapUtils;
import org.unidal.lookup.util.StringUtils;
public class DetailStatistics extends BaseVisitor {
......
......@@ -10,6 +10,13 @@ import java.util.Map;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.configuration.ServerConfigManager;
import com.dianping.cat.configuration.server.entity.Domain;
import com.dianping.cat.consumer.problem.model.entity.Machine;
......@@ -22,12 +29,6 @@ import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.service.ReportService;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......
package com.dianping.cat.report.page.problem;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.problem;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
package com.dianping.cat.report.page.query;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
......@@ -5,6 +5,13 @@ import java.util.Date;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.configuration.ServerConfigManager;
import com.dianping.cat.consumer.sql.model.entity.SqlReport;
import com.dianping.cat.helper.CatString;
......@@ -15,12 +22,6 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.dianping.cat.report.service.ReportService;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
/**
* @author youyong
......
package com.dianping.cat.report.page.sql;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.sql;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
......
package com.dianping.cat.report.page.state;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.state;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
private ReportPage m_page;
......
......@@ -7,6 +7,13 @@ import java.util.List;
import javax.servlet.ServletException;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
import com.dainping.cat.consumer.dal.report.Task;
import com.dainping.cat.consumer.dal.report.TaskDao;
import com.dainping.cat.consumer.dal.report.TaskEntity;
......@@ -14,12 +21,6 @@ import com.dianping.cat.Cat;
import com.dianping.cat.helper.CatString;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.task.spi.ReportFacade;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......
package com.dianping.cat.report.page.task;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
......@@ -4,11 +4,12 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.unidal.web.mvc.ViewModel;
import com.dainping.cat.consumer.dal.report.Task;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.view.StringSortHelper;
import com.dianping.cat.report.view.TaskUrlNav;
import org.unidal.web.mvc.ViewModel;
public class Model extends ViewModel<ReportPage, Action, Context> {
......
......@@ -3,13 +3,14 @@ package com.dianping.cat.report.page.task;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.task.TaskHelper;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ActionPayload;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.task.TaskHelper;
public class Payload implements ActionPayload<ReportPage, Action> {
@FieldMeta("currentPage")
......
......@@ -13,6 +13,7 @@ import org.unidal.web.mvc.annotation.PayloadMeta;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.top.model.entity.TopReport;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.spi.ModelPeriod;
import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
......@@ -60,9 +61,16 @@ public class Handler implements PageHandler<Context> {
normalize(model, payload);
TopReport report = getReport(payload);
System.out.println(report);
ModelPeriod period = payload.getPeriod();
int count = payload.getCount();
Metrix metrix = new Metrix();
if (!period.isCurrent()) {
metrix = new Metrix(60);
}
if (count > 0) {
metrix = new Metrix(count);
}
metrix.visitTopReport(report);
model.setTopReport(report);
......
package com.dianping.cat.report.page.top;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
......@@ -11,6 +11,9 @@ public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
@FieldMeta("count")
private int m_count;
public Payload() {
super(ReportPage.TOP);
......@@ -35,6 +38,14 @@ public class Payload extends AbstractReportPayload<Action> {
m_page = ReportPage.getByName(page, ReportPage.TOP);
}
public int getCount() {
return m_count;
}
public void setCount(int count) {
m_count = count;
}
@Override
public void validate(ActionContext<?> ctx) {
if (m_action == null) {
......
......@@ -7,6 +7,13 @@ import java.util.List;
import javax.servlet.ServletException;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
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.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.transaction.StatisticsComputer;
......@@ -29,12 +36,6 @@ import com.dianping.cat.report.page.transaction.GraphPayload.FailurePayload;
import com.dianping.cat.report.page.transaction.GraphPayload.HitPayload;
import com.dianping.cat.report.service.ReportService;
import com.google.gson.Gson;
import org.unidal.lookup.annotation.Inject;
import org.unidal.lookup.util.StringUtils;
import org.unidal.web.mvc.PageHandler;
import org.unidal.web.mvc.annotation.InboundActionMeta;
import org.unidal.web.mvc.annotation.OutboundActionMeta;
import org.unidal.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
......@@ -81,38 +82,42 @@ public class Handler implements PageHandler<Context> {
}
private void calculateTps(Payload payload, TransactionReport report) {
if (payload != null && report != null) {
boolean isCurrent = payload.getPeriod().isCurrent();
String ip = payload.getIpAddress();
Machine machine = report.getMachines().get(ip);
if (machine == null) {
return;
}
for (TransactionType transType : machine.getTypes().values()) {
long totalCount = transType.getTotalCount();
double tps = 0;
if (isCurrent) {
double seconds = (System.currentTimeMillis() - payload.getCurrentDate()) / (double) 1000;
tps = totalCount / seconds;
} else {
double time = (report.getEndTime().getTime() - report.getStartTime().getTime()) / (double) 1000;
tps = totalCount / (double) time;
try {
if (payload != null && report != null) {
boolean isCurrent = payload.getPeriod().isCurrent();
String ip = payload.getIpAddress();
Machine machine = report.getMachines().get(ip);
if (machine == null) {
return;
}
transType.setTps(tps);
for (TransactionName transName : transType.getNames().values()) {
long totalNameCount = transName.getTotalCount();
double nameTps = 0;
for (TransactionType transType : machine.getTypes().values()) {
long totalCount = transType.getTotalCount();
double tps = 0;
if (isCurrent) {
double seconds = (System.currentTimeMillis() - payload.getCurrentDate()) / (double) 1000;
nameTps = totalNameCount / seconds;
tps = totalCount / seconds;
} else {
double time = (report.getEndTime().getTime() - report.getStartTime().getTime()) / (double) 1000;
nameTps = totalNameCount / (double) time;
tps = totalCount / (double) time;
}
transType.setTps(tps);
for (TransactionName transName : transType.getNames().values()) {
long totalNameCount = transName.getTotalCount();
double nameTps = 0;
if (isCurrent) {
double seconds = (System.currentTimeMillis() - payload.getCurrentDate()) / (double) 1000;
nameTps = totalNameCount / seconds;
} else {
double time = (report.getEndTime().getTime() - report.getStartTime().getTime()) / (double) 1000;
nameTps = totalNameCount / (double) time;
}
transName.setTps(nameTps);
transName.setTotalPercent((double) totalNameCount / totalCount);
}
transName.setTps(nameTps);
transName.setTotalPercent((double) totalNameCount / totalCount);
}
}
} catch (Exception e) {
Cat.logError(e);
}
}
......@@ -182,7 +187,7 @@ public class Handler implements PageHandler<Context> {
normalize(model, payload);
String type = payload.getType();
switch (payload.getAction()) {
case HOURLY_REPORT:
showHourlyReport(model, payload);
......@@ -207,7 +212,7 @@ public class Handler implements PageHandler<Context> {
case MOBILE:
showHourlyReport(model, payload);
if (!StringUtils.isEmpty(payload.getType())) {
DisplayNames report = model.getDisplayNameReport();
DisplayNames report = model.getDisplayNameReport();
String json = m_gson.toJson(report);
model.setMobileResponse(json);
} else {
......
package com.dianping.cat.report.page.transaction;
import com.dianping.cat.report.ReportPage;
import org.unidal.web.mvc.view.BaseJspViewer;
import com.dianping.cat.report.ReportPage;
public class JspViewer extends BaseJspViewer<ReportPage, Action, Context, Model> {
@Override
protected String getJspFilePath(Context ctx, Model model) {
......
package com.dianping.cat.report.page.transaction;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.payload.annotation.FieldMeta;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.AbstractReportPayload;
public class Payload extends AbstractReportPayload<Action> {
@FieldMeta("op")
private Action m_action;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册