提交 4a0609ae 编写于 作者: J jialinsun

pull resolve conflicts

......@@ -3,11 +3,23 @@ package com.dianping.cat.config.app;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.unidal.dal.jdbc.DalException;
import org.unidal.lookup.annotation.Inject;
import com.dianping.cat.Cat;
import com.dianping.cat.app.AppDataCommand;
import com.dianping.cat.app.AppDataCommandDao;
import com.dianping.cat.app.AppDataCommandEntity;
public class AppDataService {
@Inject
private AppDataCommandDao m_dao;
public static final String SUCCESS_RATIO = "successRatio";
public static final String REQUEST_COUNT = "requestCount";
......@@ -52,6 +64,11 @@ public class AppDataService {
return map;
}
private Map<String, double[]> querySuccessRatio(QueryEntity entity) {
return makeMockValue(SUCCESS_RATIO);
}
private Map<String, double[]> queryDelayAvg(QueryEntity entity) {
return makeMockValue(DELAY_AVG);
......@@ -62,9 +79,31 @@ public class AppDataService {
return makeMockValue(REQUEST_COUNT);
}
private Map<String, double[]> querySuccessRatio(QueryEntity entity) {
return makeMockValue(SUCCESS_RATIO);
public void queryAvg(QueryEntity entity) {
int commandId = entity.getCommand();
Date period = entity.getDate();
int city = entity.getCity();
int operator = entity.getOperator();
int network = entity.getNetwork();
int appVersion = entity.getVersion();
int connnectType = entity.getChannel();
int code = entity.getCode();
int platform = entity.getPlatfrom();
try {
List<AppDataCommand> datas = m_dao.findData(commandId, period, city, operator, network, appVersion,
connnectType, code, platform, AppDataCommandEntity.READSET_DATA);
for (AppDataCommand data : datas) {
int minuteOrder = data.getMinuteOrder();
long count = data.getAccessNumberSum();
long sum = data.getResponseSumTimeSum();
double avg = sum / count;
}
} catch (DalException e) {
Cat.logError(e);
}
}
public static class Statistics {
......
......@@ -16,9 +16,14 @@
<member name="access-number-sum"/>
<member name="response-sum-time-sum"/>
</readset>
<readset name="SUCCESS-DATA">
<member name="minute-order"/>
<member name="code"/>
<member name="access-number-sum"/>
</readset>
</readsets>
<query-defs>
<query name="insert-data" type="INSERT">
<query name="insert-data" type="INSERT">
<param name="command-id" />
<statement><![CDATA[INSERT INTO <TABLE/>(<FIELDS/>)
VALUES(<VALUES/>)]]></statement>
......@@ -59,6 +64,42 @@
</IF>
group by <FIELD name='minute-order'/> ]]></statement>
</query>
<query name="find-success-data" type="SELECT" multiple="true">
<param name="command-id" /><param name="period" />
<param name="period" />
<param name="city" />
<param name="operator" />
<param name="network" />
<param name="app-version" />
<param name="connnect-type" />
<param name="code" />
<param name="platform" />
<statement><![CDATA[SELECT <FIELDS/>
FROM <TABLE/>
WHERE <FIELD name='period'/> = ${period}
<IF type='NOT_ZERO' field='city'>
AND <FIELD name='city'/> = ${city}
</IF>
<IF type='NOT_ZERO' field='operator'>
AND <FIELD name='operator'/> = ${operator}
</IF>
<IF type='NOT_ZERO' field='network'>
AND <FIELD name='network'/> = ${network}
</IF>
<IF type='NOT_ZERO' field='app-version'>
AND <FIELD name='app-version'/> = ${app-version}
</IF>
<IF type='NOT_ZERO' field='connnect-type'>
AND <FIELD name='connnect-type'/> = ${connnect-type}
</IF>
<IF type='NOT_ZERO' field='code'>
AND <FIELD name='code'/> = ${code}
</IF>
<IF type='NOT_ZERO' field='platform'>
AND <FIELD name='platform'/> = ${platform}
</IF>
group by <FIELD name='minute-order'/>,<FIELD name='code'/> ]]></statement>
</query>
</query-defs>
</entity>
</entities>
......@@ -44,18 +44,17 @@ public class AppGraphCreator extends AbstractGraphCreator {
lineChart.setId(startDate.toString());
lineChart.setHtmlTitle(key);
Map<Long, Double> all = convertToMap(datas.get(key), startDate, endDate, 5);
Map<Long, Double> all = convertToMap(datas.get(key), startDate, 5);
lineChart.add(startDate.toString(), all);
}
return lineChart;
}
protected Map<Long, Double> convertToMap(double[] data, Date start, Date end, int step) {
protected Map<Long, Double> convertToMap(double[] data, Date start, int step) {
Map<Long, Double> map = new LinkedHashMap<Long, Double>();
int length = data.length;
long startTime = start.getTime();
long endTime = end.getTime();
long time = startTime;
int i = 0;
......@@ -64,9 +63,6 @@ public class AppGraphCreator extends AbstractGraphCreator {
map.put(time, data[i]);
}
for (; time < endTime; time += step * TimeUtil.ONE_MINUTE) {
map.put(time, -1D);
}
return map;
}
}
......@@ -392,6 +392,3693 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.app.graph.AppGraphCreator</role>
<implementation>com.dianping.cat.report.page.app.graph.AppGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.config.app.AppDataService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.TransactionReportService</role>
<implementation>com.dianping.cat.report.service.impl.TransactionReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.EventReportService</role>
<implementation>com.dianping.cat.report.service.impl.EventReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.ProblemReportService</role>
<implementation>com.dianping.cat.report.service.impl.ProblemReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.MatrixReportService</role>
<implementation>com.dianping.cat.report.service.impl.MatrixReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.CrossReportService</role>
<implementation>com.dianping.cat.report.service.impl.CrossReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.StateReportService</role>
<implementation>com.dianping.cat.report.service.impl.StateReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.BugReportService</role>
<implementation>com.dianping.cat.report.service.impl.BugReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.UtilizationReportService</role>
<implementation>com.dianping.cat.report.service.impl.UtilizationReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.ServiceReportService</role>
<implementation>com.dianping.cat.report.service.impl.ServiceReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.HeavyReportService</role>
<implementation>com.dianping.cat.report.service.impl.HeavyReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.NetTopologyReportService</role>
<implementation>com.dianping.cat.report.service.impl.NetTopologyReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.AlertReportService</role>
<implementation>com.dianping.cat.report.service.impl.AlertReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.TopReportService</role>
<implementation>com.dianping.cat.report.service.impl.TopReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.DependencyReportService</role>
<implementation>com.dianping.cat.report.service.impl.DependencyReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.HeartbeatReportService</role>
<implementation>com.dianping.cat.report.service.impl.HeartbeatReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.impl.MetricReportService</role>
<implementation>com.dianping.cat.report.service.impl.MetricReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.advanced.dal.BusinessReportDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.ReportService</role>
<implementation>com.dianping.cat.report.service.impl.DefaultReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.WeeklyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.MonthlyReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HourlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.TransactionReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.EventReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.ProblemReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.MatrixReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.DependencyReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.TopReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.StateReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.CrossReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.HeartbeatReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.MetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.BugReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.HeavyReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.ServiceReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.UtilizationReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.NetTopologyReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.impl.AlertReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.DefaultTaskConsumer</role>
<implementation>com.dianping.cat.report.task.DefaultTaskConsumer</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.TaskDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.spi.ReportFacade</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.transaction.TransactionGraphCreator</role>
<implementation>com.dianping.cat.report.task.transaction.TransactionGraphCreator</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.event.EventGraphCreator</role>
<implementation>com.dianping.cat.report.task.event.EventGraphCreator</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.problem.ProblemGraphCreator</role>
<implementation>com.dianping.cat.report.task.problem.ProblemGraphCreator</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator</role>
<implementation>com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.transaction.TransactionMerger</role>
<implementation>com.dianping.cat.report.task.transaction.TransactionMerger</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.event.EventMerger</role>
<implementation>com.dianping.cat.report.task.event.EventMerger</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.problem.ProblemMerger</role>
<implementation>com.dianping.cat.report.task.problem.ProblemMerger</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.metric.MetricPointParser</role>
<implementation>com.dianping.cat.report.task.metric.MetricPointParser</implementation>
</component>
<component>
<role>com.dianping.cat.report.baseline.BaselineCreator</role>
<implementation>com.dianping.cat.report.baseline.impl.DefaultBaselineCreator</implementation>
</component>
<component>
<role>com.dianping.cat.report.baseline.BaselineService</role>
<implementation>com.dianping.cat.report.baseline.impl.DefaultBaselineService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.home.dal.report.BaselineDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.baseline.BaselineConfigManager</role>
<implementation>com.dianping.cat.report.baseline.BaselineConfigManager</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.metric.MetricBaselineReportBuilder</role>
<implementation>com.dianping.cat.report.task.metric.MetricBaselineReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.metric.MetricPointParser</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.transaction.TransactionReportBuilder</role>
<implementation>com.dianping.cat.report.task.transaction.TransactionReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.transaction.TransactionGraphCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.transaction.TransactionMerger</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.event.EventReportBuilder</role>
<implementation>com.dianping.cat.report.task.event.EventReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.event.EventGraphCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.event.EventMerger</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.problem.ProblemReportBuilder</role>
<implementation>com.dianping.cat.report.task.problem.ProblemReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.problem.ProblemGraphCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.problem.ProblemMerger</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.heartbeat.HeartbeatReportBuilder</role>
<implementation>com.dianping.cat.report.task.heartbeat.HeartbeatReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.bug.BugReportBuilder</role>
<implementation>com.dianping.cat.report.task.bug.BugReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.service.ServiceReportBuilder</role>
<implementation>com.dianping.cat.report.task.service.ServiceReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.DomainManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.matrix.MatrixReportBuilder</role>
<implementation>com.dianping.cat.report.task.matrix.MatrixReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.cross.CrossReportBuilder</role>
<implementation>com.dianping.cat.report.task.cross.CrossReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.state.StateReportBuilder</role>
<implementation>com.dianping.cat.report.task.state.StateReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.exception.AlertReportBuilder</role>
<implementation>com.dianping.cat.report.task.alert.exception.AlertReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.heavy.HeavyReportBuilder</role>
<implementation>com.dianping.cat.report.task.heavy.HeavyReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.utilization.UtilizationReportBuilder</role>
<implementation>com.dianping.cat.report.task.utilization.UtilizationReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.TransactionMergeManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.DomainManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.dependency.DependencyReportBuilder</role>
<implementation>com.dianping.cat.report.task.dependency.DependencyReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</role>
<implementation>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphManager</role>
<implementation>com.dianping.cat.report.page.network.nettopology.NetGraphManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.network.NetTopologyReportBuilder</role>
<implementation>com.dianping.cat.report.task.network.NetTopologyReportBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.spi.ReportFacade</role>
<implementation>com.dianping.cat.report.task.spi.ReportFacade</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.task.transaction.TransactionReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.event.EventReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.problem.ProblemReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.heartbeat.HeartbeatReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.matrix.MatrixReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.cross.CrossReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.state.StateReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.dependency.DependencyReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.bug.BugReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.service.ServiceReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.metric.MetricBaselineReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.heavy.HeavyReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.exception.AlertReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.utilization.UtilizationReportBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.network.NetTopologyReportBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction-local</role-hint>
<implementation>com.dianping.cat.report.page.model.transaction.LocalTransactionService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.transaction.HistoricalTransactionService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction</role-hint>
<implementation>com.dianping.cat.report.page.model.transaction.CompositeTransactionService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>transaction-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event-local</role-hint>
<implementation>com.dianping.cat.report.page.model.event.LocalEventService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.event.HistoricalEventService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event</role-hint>
<implementation>com.dianping.cat.report.page.model.event.CompositeEventService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>event-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem-local</role-hint>
<implementation>com.dianping.cat.report.page.model.problem.LocalProblemService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.problem.HistoricalProblemService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem</role-hint>
<implementation>com.dianping.cat.report.page.model.problem.CompositeProblemService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>problem-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>heartbeat-local</role-hint>
<implementation>com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>heartbeat-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.heartbeat.HistoricalHeartbeatService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>heartbeat</role-hint>
<implementation>com.dianping.cat.report.page.model.heartbeat.CompositeHeartbeatService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>heartbeat-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>matrix-local</role-hint>
<implementation>com.dianping.cat.report.page.model.matrix.LocalMatrixService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>matrix-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.matrix.HistoricalMatrixService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>matrix</role-hint>
<implementation>com.dianping.cat.report.page.model.matrix.CompositeMatrixService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>matrix-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state-local</role-hint>
<implementation>com.dianping.cat.report.page.model.state.LocalStateService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.state.HistoricalStateService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state</role-hint>
<implementation>com.dianping.cat.report.page.model.state.CompositeStateService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>state-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>cross-local</role-hint>
<implementation>com.dianping.cat.report.page.model.cross.LocalCrossService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>cross-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.cross.HistoricalCrossService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>cross</role-hint>
<implementation>com.dianping.cat.report.page.model.cross.CompositeCrossService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>cross-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top-local</role-hint>
<implementation>com.dianping.cat.report.page.model.top.LocalTopService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.top.HistoricalTopService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top</role-hint>
<implementation>com.dianping.cat.report.page.model.top.CompositeTopService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>top-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency-local</role-hint>
<implementation>com.dianping.cat.report.page.model.dependency.LocalDependencyService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.dependency.HistoricalDependencyService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency</role-hint>
<implementation>com.dianping.cat.report.page.model.dependency.CompositeDependencyService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>dependency-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>metric-local</role-hint>
<implementation>com.dianping.cat.report.page.model.metric.LocalMetricService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>metric-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.metric.HistoricalMetricService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>metric</role-hint>
<implementation>com.dianping.cat.report.page.model.metric.CompositeMetricService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>metric-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>logview</role-hint>
<implementation>com.dianping.cat.report.page.model.logview.CompositeLogViewService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hints>
<role-hint>message-historical</role-hint>
<role-hint>logview-historical</role-hint>
</role-hints>
<field-name>m_services</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>message-local</role-hint>
<implementation>com.dianping.cat.report.page.model.logview.LocalMessageService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.storage.dump.MessageBucketManager</role>
<role-hint>local</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.MessageCodec</role>
<role-hint>html</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>message-historical</role-hint>
<implementation>com.dianping.cat.report.page.model.logview.HistoricalMessageService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.dump.MessageBucketManager</role>
<role-hint>local</role-hint>
<field-name>m_localBucketManager</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.storage.dump.MessageBucketManager</role>
<role-hint>hdfs</role-hint>
<field-name>m_hdfsBucketManager</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.MessageCodec</role>
<role-hint>html</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.service.CachedReportTask</role>
<implementation>com.dianping.cat.report.service.CachedReportTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
<implementation>com.dianping.cat.report.task.alert.RemoteMetricReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.business.BusinessAlertConfig</role>
<implementation>com.dianping.cat.report.task.alert.business.BusinessAlertConfig</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.network.NetworkAlertConfig</role>
<implementation>com.dianping.cat.report.task.alert.network.NetworkAlertConfig</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.system.SystemAlertConfig</role>
<implementation>com.dianping.cat.report.task.alert.system.SystemAlertConfig</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig</role>
<implementation>com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
<implementation>com.dianping.cat.report.task.alert.AlertInfo</implementation>
</component>
<component>
<role>com.dianping.cat.system.tool.DefaultMailImpl</role>
<implementation>com.dianping.cat.system.tool.DefaultMailImpl</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.DataChecker</role>
<implementation>com.dianping.cat.report.task.alert.DefaultDataChecker</implementation>
</component>
<component>
<role>com.dianping.cat.report.task.alert.business.BusinessAlert</role>
<implementation>com.dianping.cat.report.task.alert.business.BusinessAlert</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.tool.MailSMS</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.business.BusinessAlertConfig</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AlertDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.BusinessRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.DataChecker</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.network.NetworkAlert</role>
<implementation>com.dianping.cat.report.task.alert.network.NetworkAlert</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.tool.MailSMS</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.network.NetworkAlertConfig</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AlertDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetworkRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.DataChecker</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.system.SystemAlert</role>
<implementation>com.dianping.cat.report.task.alert.system.SystemAlert</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.tool.MailSMS</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.system.SystemAlertConfig</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AlertDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.SystemRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.DataChecker</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder</role>
<implementation>com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.exception.ExceptionAlert</role>
<implementation>com.dianping.cat.report.task.alert.exception.ExceptionAlert</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.tool.MailSMS</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AlertDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
<implementation>com.dianping.cat.system.config.NetGraphConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager</role>
<implementation>org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager</implementation>
<configuration>
<datasourceFile>/data/appdatas/cat/datasources.xml</datasourceFile>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>alert</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>alert</logical-table-name>
<physical-table-name>alert</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>alert-summary</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>alert-summary</logical-table-name>
<physical-table-name>alert_summary</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>alteration</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>alteration</logical-table-name>
<physical-table-name>alteration</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>baseline</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>baseline</logical-table-name>
<physical-table-name>baseline</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>daily-report-content</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>daily-report-content</logical-table-name>
<physical-table-name>daily_report_content</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>event</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>event</logical-table-name>
<physical-table-name>event</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>monthly-report-content</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>monthly-report-content</logical-table-name>
<physical-table-name>monthly_report_content</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>topology-graph</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>topology-graph</logical-table-name>
<physical-table-name>topologyGraph</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>weekly-report-content</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>weekly-report-content</logical-table-name>
<physical-table-name>weekly_report_content</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AlertDao</role>
<implementation>com.dianping.cat.home.dal.report.AlertDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AlertSummaryDao</role>
<implementation>com.dianping.cat.home.dal.report.AlertSummaryDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AlterationDao</role>
<implementation>com.dianping.cat.home.dal.report.AlterationDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.BaselineDao</role>
<implementation>com.dianping.cat.home.dal.report.BaselineDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.DailyReportContentDao</role>
<implementation>com.dianping.cat.home.dal.report.DailyReportContentDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.EventDao</role>
<implementation>com.dianping.cat.home.dal.report.EventDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.MonthlyReportContentDao</role>
<implementation>com.dianping.cat.home.dal.report.MonthlyReportContentDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
<implementation>com.dianping.cat.home.dal.report.TopologyGraphDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.WeeklyReportContentDao</role>
<implementation>com.dianping.cat.home.dal.report.WeeklyReportContentDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>mail-record</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>mail-record</logical-table-name>
<physical-table-name>mailRecord</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>scheduled-report</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>scheduled-report</logical-table-name>
<physical-table-name>scheduledReport</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>scheduled-report-subscription</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>scheduled-report-subscription</logical-table-name>
<physical-table-name>scheduledReportSubscription</physical-table-name>
<data-source-name>cat</data-source-name>
</configuration>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.MailRecordDao</role>
<implementation>com.dianping.cat.home.dal.alarm.MailRecordDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportDao</role>
<implementation>com.dianping.cat.home.dal.alarm.ScheduledReportDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</role>
<implementation>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.dal.jdbc.mapping.TableProvider</role>
<role-hint>dp-admin-login</role-hint>
<implementation>org.unidal.dal.jdbc.mapping.SimpleTableProvider</implementation>
<configuration>
<logical-table-name>dp-admin-login</logical-table-name>
<physical-table-name>DP_AdminLogin</physical-table-name>
<data-source-name>user</data-source-name>
</configuration>
</component>
<component>
<role>com.dianping.cat.home.dal.user.DpAdminLoginDao</role>
<implementation>com.dianping.cat.home.dal.user.DpAdminLoginDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.product.ProjectUpdateTask</role>
<implementation>com.dianping.cat.report.task.product.ProjectUpdateTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.HostinfoDao</role>
</requirement>
</requirements>
</component>
<component>
<role>org.unidal.web.mvc.model.ModuleRegistry</role>
<implementation>org.unidal.web.mvc.model.ModuleRegistry</implementation>
<configuration>
<modules>
<module default="true">com.dianping.cat.report.ReportModule</module>
<module>com.dianping.cat.system.SystemModule</module>
</modules>
</configuration>
</component>
<component>
<role>com.dianping.cat.report.ReportModule</role>
<implementation>com.dianping.cat.report.ReportModule</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.home.Handler</role>
<implementation>com.dianping.cat.report.page.home.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.home.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.home.JspViewer</role>
<implementation>com.dianping.cat.report.page.home.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.consumer.RealtimeConsumer</role>
<implementation>com.dianping.cat.consumer.RealtimeConsumer</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.analysis.MessageAnalyzerManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.statistic.ServerStatisticManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.statistic.ServerStatisticManager</role>
<implementation>com.dianping.cat.statistic.ServerStatisticManager</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.problem.Handler</role>
<implementation>com.dianping.cat.report.page.problem.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.problem.HistoryGraphs</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.problem.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.DomainGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.JsonBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.problem.HistoryGraphs</role>
<implementation>com.dianping.cat.report.page.problem.HistoryGraphs</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.core.dal.GraphDao</role>
<implementation>com.dianping.cat.core.dal.GraphDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
<implementation>com.dianping.cat.core.dal.DailyGraphDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.problem.JspViewer</role>
<implementation>com.dianping.cat.report.page.problem.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.ServerConfigManager</role>
<implementation>com.dianping.cat.ServerConfigManager</implementation>
</component>
<component>
<role>com.dianping.cat.system.config.DomainGroupConfigManager</role>
<implementation>com.dianping.cat.system.config.DomainGroupConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.core.config.ConfigDao</role>
<implementation>com.dianping.cat.core.config.ConfigDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
<implementation>com.dianping.cat.report.page.PayloadNormalizer</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.JsonBuilder</role>
<implementation>com.dianping.cat.report.page.JsonBuilder</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.transaction.Handler</role>
<implementation>com.dianping.cat.report.page.transaction.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.graph.GraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.HistoryGraphs</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.XmlViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.TransactionMergeManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.DomainGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction</role-hint>
<field-name>m_service</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.transaction.HistoryGraphs</role>
<implementation>com.dianping.cat.report.page.transaction.HistoryGraphs</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.transaction.JspViewer</role>
<implementation>com.dianping.cat.report.page.transaction.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.transaction.XmlViewer</role>
<implementation>com.dianping.cat.report.page.transaction.XmlViewer</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.transaction.TransactionMergeManager</role>
<implementation>com.dianping.cat.report.page.transaction.TransactionMergeManager</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.event.Handler</role>
<implementation>com.dianping.cat.report.page.event.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.graph.GraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.event.HistoryGraphs</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.event.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.event.EventMergeManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.DomainGroupConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.event.HistoryGraphs</role>
<implementation>com.dianping.cat.report.page.event.HistoryGraphs</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.DailyGraphDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.event.JspViewer</role>
<implementation>com.dianping.cat.report.page.event.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.event.EventMergeManager</role>
<implementation>com.dianping.cat.report.page.event.EventMergeManager</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.heartbeat.Handler</role>
<implementation>com.dianping.cat.report.page.heartbeat.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.graph.GraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.heartbeat.HistoryGraphs</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.heartbeat.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>heartbeat</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.heartbeat.HistoryGraphs</role>
<implementation>com.dianping.cat.report.page.heartbeat.HistoryGraphs</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.GraphDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.heartbeat.JspViewer</role>
<implementation>com.dianping.cat.report.page.heartbeat.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.logview.Handler</role>
<implementation>com.dianping.cat.report.page.logview.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.logview.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>logview</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessagePathBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.logview.JspViewer</role>
<implementation>com.dianping.cat.report.page.logview.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.Handler</role>
<implementation>com.dianping.cat.report.page.model.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>cross-local</role-hint>
<field-name>m_crossService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency-local</role-hint>
<field-name>m_dependencyService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event-local</role-hint>
<field-name>m_eventService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>heartbeat-local</role-hint>
<field-name>m_heartbeatService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>matrix-local</role-hint>
<field-name>m_matrixService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>message-local</role-hint>
<field-name>m_messageService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>metric-local</role-hint>
<field-name>m_metricService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem-local</role-hint>
<field-name>m_problemService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state-local</role-hint>
<field-name>m_stateService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top-local</role-hint>
<field-name>m_topService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction-local</role-hint>
<field-name>m_transactionService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.service.IpService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.cross.LocalCrossService</role>
<implementation>com.dianping.cat.report.page.model.cross.LocalCrossService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.dependency.LocalDependencyService</role>
<implementation>com.dianping.cat.report.page.model.dependency.LocalDependencyService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.event.LocalEventService</role>
<implementation>com.dianping.cat.report.page.model.event.LocalEventService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService</role>
<implementation>com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.matrix.LocalMatrixService</role>
<implementation>com.dianping.cat.report.page.model.matrix.LocalMatrixService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.logview.LocalMessageService</role>
<implementation>com.dianping.cat.report.page.model.logview.LocalMessageService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.dump.MessageBucketManager</role>
<role-hint>local</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.MessageCodec</role>
<role-hint>html</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.metric.LocalMetricService</role>
<implementation>com.dianping.cat.report.page.model.metric.LocalMetricService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.problem.LocalProblemService</role>
<implementation>com.dianping.cat.report.page.model.problem.LocalProblemService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.state.LocalStateService</role>
<implementation>com.dianping.cat.report.page.model.state.LocalStateService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.top.LocalTopService</role>
<implementation>com.dianping.cat.report.page.model.top.LocalTopService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.model.transaction.LocalTransactionService</role>
<implementation>com.dianping.cat.report.page.model.transaction.LocalTransactionService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.storage.BucketManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.service.IpService</role>
<implementation>com.dianping.cat.service.IpService</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.dashboard.Handler</role>
<implementation>com.dianping.cat.report.page.dashboard.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.dashboard.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.transaction.TransactionMergeManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.event.EventMergeManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event</role-hint>
<field-name>m_eventService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction</role-hint>
<field-name>m_transactionService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem</role-hint>
<field-name>m_problemService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.JsonBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dashboard.JspViewer</role>
<implementation>com.dianping.cat.report.page.dashboard.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.matrix.Handler</role>
<implementation>com.dianping.cat.report.page.matrix.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.matrix.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>matrix</role-hint>
<field-name>m_service</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.matrix.JspViewer</role>
<implementation>com.dianping.cat.report.page.matrix.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cross.Handler</role>
<implementation>com.dianping.cat.report.page.cross.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.cross.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.DomainManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>cross</role-hint>
<field-name>m_service</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cross.JspViewer</role>
<implementation>com.dianping.cat.report.page.cross.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.DomainManager</role>
<implementation>com.dianping.cat.DomainManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.HostinfoDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.core.dal.HostinfoDao</role>
<implementation>com.dianping.cat.core.dal.HostinfoDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.core.dal.ProjectDao</role>
<implementation>com.dianping.cat.core.dal.ProjectDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cache.Handler</role>
<implementation>com.dianping.cat.report.page.cache.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>event</role-hint>
<field-name>m_eventService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.cache.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>transaction</role-hint>
<field-name>m_transactionService</field-name>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cache.JspViewer</role>
<implementation>com.dianping.cat.report.page.cache.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.state.Handler</role>
<implementation>com.dianping.cat.report.page.state.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.state.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.state.StateGraphs</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.state.JspViewer</role>
<implementation>com.dianping.cat.report.page.state.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.state.StateGraphs</role>
<implementation>com.dianping.cat.report.page.state.StateGraphs</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.top.Handler</role>
<implementation>com.dianping.cat.report.page.top.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.top.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.top.JspViewer</role>
<implementation>com.dianping.cat.report.page.top.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
<implementation>com.dianping.cat.system.config.ExceptionConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.metric.Handler</role>
<implementation>com.dianping.cat.report.page.metric.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.metric.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.metric.graph.MetricGraphCreator</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.metric.JspViewer</role>
<implementation>com.dianping.cat.report.page.metric.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
<implementation>com.dianping.cat.consumer.metric.ProductLineConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
<implementation>com.dianping.cat.system.config.MetricGroupConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.metric.graph.MetricGraphCreator</role>
<implementation>com.dianping.cat.report.page.metric.graph.MetricGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
<implementation>com.dianping.cat.consumer.metric.MetricConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
<implementation>com.dianping.cat.report.task.alert.AlertInfo</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.Handler</role>
<implementation>com.dianping.cat.report.page.dependency.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency</role-hint>
<field-name>m_dependencyService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>state</role-hint>
<field-name>m_stateService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.ExternalInfoBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.view.DomainNavManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder</implementation>
</component>
<component>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
<implementation>com.dianping.cat.home.dal.report.TopologyGraphDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.view.DomainNavManager</role>
<implementation>com.dianping.cat.report.view.DomainNavManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.ExternalInfoBuilder</role>
<implementation>com.dianping.cat.report.page.dependency.ExternalInfoBuilder</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>problem</role-hint>
<field-name>m_problemservice</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>top</role-hint>
<field-name>m_topService</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.externalError.EventCollectManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.externalError.EventCollectManager</role>
<implementation>com.dianping.cat.report.page.externalError.EventCollectManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.home.dal.report.EventDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.EventDao</role>
<implementation>com.dianping.cat.home.dal.report.EventDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.JspViewer</role>
<implementation>com.dianping.cat.report.page.dependency.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.externalError.Handler</role>
<implementation>com.dianping.cat.report.page.externalError.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.externalError.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.externalError.EventCollectManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.DomainManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.externalError.JspViewer</role>
<implementation>com.dianping.cat.report.page.externalError.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.statistics.Handler</role>
<implementation>com.dianping.cat.report.page.statistics.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.statistics.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.BugConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.statistics.JspViewer</role>
<implementation>com.dianping.cat.report.page.statistics.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.BugConfigManager</role>
<implementation>com.dianping.cat.system.config.BugConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.alteration.Handler</role>
<implementation>com.dianping.cat.report.page.alteration.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.alteration.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.report.AlterationDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.alteration.JspViewer</role>
<implementation>com.dianping.cat.report.page.alteration.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.report.AlterationDao</role>
<implementation>com.dianping.cat.home.dal.report.AlterationDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.monitor.Handler</role>
<implementation>com.dianping.cat.report.page.monitor.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.monitor.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.JsonBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.monitor.JspViewer</role>
<implementation>com.dianping.cat.report.page.monitor.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.Handler</role>
<implementation>com.dianping.cat.report.page.network.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.network.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.network.graph.NetworkGraphCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.JspViewer</role>
<implementation>com.dianping.cat.report.page.network.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.graph.NetworkGraphCreator</role>
<implementation>com.dianping.cat.report.page.network.graph.NetworkGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphManager</role>
<implementation>com.dianping.cat.report.page.network.nettopology.NetGraphManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.RemoteMetricReportService</role>
<implementation>com.dianping.cat.report.task.alert.RemoteMetricReportService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</role>
<implementation>com.dianping.cat.report.page.network.nettopology.NetGraphBuilder</implementation>
</component>
<component>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
<implementation>com.dianping.cat.system.config.NetGraphConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.userMonitor.Handler</role>
<implementation>com.dianping.cat.report.page.userMonitor.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.userMonitor.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.userMonitor.CityManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.userMonitor.graph.UserMonitorGraphCreator</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.userMonitor.JspViewer</role>
<implementation>com.dianping.cat.report.page.userMonitor.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.url.UrlPatternConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.url.UrlPatternHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.userMonitor.CityManager</role>
<implementation>com.dianping.cat.report.page.userMonitor.CityManager</implementation>
</component>
<component>
<role>com.dianping.cat.report.page.system.Handler</role>
<implementation>com.dianping.cat.report.page.system.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.system.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.PayloadNormalizer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.system.graph.SystemGraphCreator</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.system.JspViewer</role>
<implementation>com.dianping.cat.report.page.system.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.system.graph.SystemGraphCreator</role>
<implementation>com.dianping.cat.report.page.system.graph.SystemGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cdn.Handler</role>
<implementation>com.dianping.cat.report.page.cdn.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.cdn.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.userMonitor.CityManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.cdn.graph.CdnGraphCreator</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cdn.JspViewer</role>
<implementation>com.dianping.cat.report.page.cdn.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.cdn.graph.CdnGraphCreator</role>
<implementation>com.dianping.cat.report.page.cdn.graph.CdnGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.app.Handler</role>
<implementation>com.dianping.cat.report.page.app.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.report.page.app.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.app.AppConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.app.graph.AppGraphCreator</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.app.JspViewer</role>
<implementation>com.dianping.cat.report.page.app.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.config.app.AppConfigManager</role>
<implementation>com.dianping.cat.config.app.AppConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.app.graph.AppGraphCreator</role>
<implementation>com.dianping.cat.report.page.app.graph.AppGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.config.app.AppDataService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.config.app.AppDataService</role>
<implementation>com.dianping.cat.config.app.AppDataService</implementation>
</component>
<component>
<role>com.dianping.cat.system.SystemModule</role>
<implementation>com.dianping.cat.system.SystemModule</implementation>
</component>
<component>
<role>com.dianping.cat.system.page.alarm.Handler</role>
<implementation>com.dianping.cat.system.page.alarm.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.alarm.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.alarm.RecordManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.alarm.ScheduledManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.alarm.JspViewer</role>
<implementation>com.dianping.cat.system.page.alarm.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.alarm.RecordManager</role>
<implementation>com.dianping.cat.system.page.alarm.RecordManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.home.dal.alarm.MailRecordDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.MailRecordDao</role>
<implementation>com.dianping.cat.home.dal.alarm.MailRecordDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</role>
<implementation>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.alarm.ScheduledManager</role>
<implementation>com.dianping.cat.system.page.alarm.ScheduledManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.home.dal.user.DpAdminLoginDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.user.DpAdminLoginDao</role>
<implementation>com.dianping.cat.home.dal.user.DpAdminLoginDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.home.dal.alarm.ScheduledReportDao</role>
<implementation>com.dianping.cat.home.dal.alarm.ScheduledReportDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.login.Handler</role>
<implementation>com.dianping.cat.system.page.login.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.login.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.login.service.SigninService</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.login.JspViewer</role>
<implementation>com.dianping.cat.system.page.login.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.login.service.SigninService</role>
<implementation>com.dianping.cat.system.page.login.service.SigninService</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.login.service.TokenManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.login.service.SessionManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.login.service.TokenManager</role>
<implementation>com.dianping.cat.system.page.login.service.TokenManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.login.service.CookieManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.login.service.TokenBuilder</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.login.service.CookieManager</role>
<implementation>com.dianping.cat.system.page.login.service.CookieManager</implementation>
</component>
<component>
<role>com.dianping.cat.system.page.login.service.TokenBuilder</role>
<implementation>com.dianping.cat.system.page.login.service.TokenBuilder</implementation>
</component>
<component>
<role>com.dianping.cat.system.page.login.service.SessionManager</role>
<implementation>com.dianping.cat.system.page.login.service.SessionManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.home.dal.user.DpAdminLoginDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.config.Handler</role>
<implementation>com.dianping.cat.system.page.config.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.config.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.aggregation.AggregationConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.ExceptionConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.DomainGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.BugConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.BusinessRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetworkRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.SystemRuleConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.app.AppConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.view.DomainNavManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.NetGraphConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.config.JspViewer</role>
<implementation>com.dianping.cat.system.page.config.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.config.aggregation.AggregationConfigManager</role>
<implementation>com.dianping.cat.config.aggregation.AggregationConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.aggregation.AggregationHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.BusinessRuleConfigManager</role>
<implementation>com.dianping.cat.system.config.BusinessRuleConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.NetworkRuleConfigManager</role>
<implementation>com.dianping.cat.system.config.NetworkRuleConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.SystemRuleConfigManager</role>
<implementation>com.dianping.cat.system.config.SystemRuleConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.config.AlertConfigManager</role>
<implementation>com.dianping.cat.system.config.AlertConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.plugin.Handler</role>
<implementation>com.dianping.cat.system.page.plugin.Handler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.page.plugin.JspViewer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.page.plugin.JspViewer</role>
<implementation>com.dianping.cat.system.page.plugin.JspViewer</implementation>
<requirements>
<requirement>
<role>org.unidal.web.mvc.view.model.ModelHandler</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.tool.MailSMS</role>
<implementation>com.dianping.cat.system.tool.DefaultMailImpl</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.system.notify.ReportRender</role>
<implementation>com.dianping.cat.system.notify.ReportRenderImpl</implementation>
</component>
<component>
<role>com.dianping.cat.system.notify.ScheduledMailTask</role>
<implementation>com.dianping.cat.system.notify.ScheduledMailTask</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.system.notify.ReportRender</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.tool.MailSMS</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.service.ReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.page.alarm.ScheduledManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.home.dal.alarm.MailRecordDao</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.task.alert.business.BusinessAlertConfig</role>
<implementation>com.dianping.cat.report.task.alert.business.BusinessAlertConfig</implementation>
......@@ -600,37 +4287,6 @@
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.app.graph.AppGraphCreator</role>
<implementation>com.dianping.cat.report.page.app.graph.AppGraphCreator</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.config.app.AppDataService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.CachedMetricReportService</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.DataExtractor</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.chart.MetricDataFetcher</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.baseline.BaselineService</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.MetricConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.metric.ProductLineConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.task.alert.AlertInfo</role>
</requirement>
</requirements>
<role>org.unidal.initialization.Module</role>
<role-hint>cat-home</role-hint>
<implementation>com.dianping.cat.CatHomeModule</implementation>
......
......@@ -164,14 +164,33 @@ function graphMetricChart(container, data) {
});
}
function graphMetricChart2(container, data) {
function parseMetricLineDataForApp(data) {
var res = [];
data.subTitles.forEach(function(title, i) {
var series = {}
series.name = title;
series.data = [];
var map = data.datas[i];
var j = 0;
for ( var key in map) {
var value = map[key];
series.data[j] = value;
j++;
}
res.push(series);
});
return res;
}
function graphMetricChartForApp(container, data) {
Highcharts.setOptions({
global : {
useUTC : false
}
});
var ylabelMin = data.minYlable;
var _data = parseMetricLineData(data);
var _data = parseMetricLineDataForApp(data);
$(container).highcharts(
{
chart : {
......@@ -182,16 +201,15 @@ function graphMetricChart2(container, data) {
useHTML: true
},
xAxis : {
type : 'datetime',
dateTimeLabelFormats : {
second : '%H:%M:%S',
minute : '%H:%M',
hour : '%H:%M',
day : '%m-%d',
week : '%Y-%m-%d',
month : '%m-%d',
year : '%Y-%m'
},
type : "category",
labels : {
step : 12,
maxStaggerLines : 1,
formatter: function() {
return this.value / 12;
}
},
max : 288
},
yAxis : {
min : ylabelMin,
......
......@@ -174,7 +174,7 @@
}
var data = ${model.lineChart.jsonString};
graphMetricChart2(document.getElementById('${model.lineChart.id}'), data);
graphMetricChartForApp(document.getElementById('${model.lineChart.id}'), data);
});
</script>
......
package com.dianping.cat.report.analyzer;
import java.text.ParseException;
import java.io.File;
import java.text.SimpleDateFormat;
import org.junit.Test;
import org.unidal.eunit.helper.Files;
import org.unidal.lookup.ComponentTestCase;
import com.dianping.cat.consumer.metric.ProductLineConfigManager;
import com.dianping.cat.home.dependency.graph.entity.TopologyGraph;
import com.dianping.cat.report.page.dependency.graph.TopologyGraphManager;
public class TopologyGraphTest extends ComponentTestCase{
public class TopologyGraphTest extends ComponentTestCase {
@Test
public void test() throws ParseException{
public void test() throws Exception {
build("2014-07-06 18:00");
build("2014-07-06 18:01");
build("2014-07-06 18:02");
build("2014-07-06 18:03");
build("2014-07-06 18:04");
build("2014-07-06 18:05");
build("2014-07-06 18:06");
build("2014-07-06 18:07");
build("2014-07-06 18:08");
build("2014-07-06 18:09");
}
public void build(String date) throws Exception {
TopologyGraphManager manager = lookup(TopologyGraphManager.class);
String date = "2014-07-06 18:00";
SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm");
TopologyGraph graph = manager.queryGraphFromDB(formate.parse(date).getTime());
System.out.println(graph);
}
@Test
public void test1(){
ProductLineConfigManager manager = lookup(ProductLineConfigManager.class);
System.out.println(manager.getCompany());
try {
TopologyGraph graph = manager.queryGraphFromDB(formate.parse(date).getTime());
if (graph != null) {
File file = new File("/tmp/" + date + ".txt");
if (!file.exists()) {
file.createNewFile();
}
Files.forIO().writeTo(file, graph.toString());
}else{
System.err.println(date+" is null1");
}
} catch (Exception e) {
System.err.println(date+" is null1");
}
}
}
......@@ -328,7 +328,7 @@ CREATE TABLE `alert_summary` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统一告警信息';
CREATE TABLE `app_data_command` (
CREATE TABLE `app_data_command_1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`period` date NOT NULL COMMENT '时间',
`minute_order` smallint NOT NULL COMMENT '分钟',
......@@ -353,8 +353,4 @@ CREATE TABLE `app_data_command` (
KEY IX_period_connnect_minute (period,connnect_type,minute_order),
KEY IX_period_platform_minute (period,platform,minute_order),
KEY IX_period_code_minute (period,code,minute_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='app基本数据';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='app基本数据';
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册