提交 ca4c2878 编写于 作者: Y youyong205

modify the app config

上级 fdf3062a
......@@ -27,7 +27,7 @@
<dependency>
<groupId>org.unidal.framework</groupId>
<artifactId>dal-jdbc</artifactId>
<version>2.0.4</version>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
......
......@@ -11,7 +11,7 @@ final class AppDatabaseConfigurator extends AbstractJdbcResourceConfigurator {
public List<Component> defineComponents() {
List<Component> all = new ArrayList<Component>();
// all.add(defineJdbcDataSourceComponent("app", "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1:3306/app", "root", "***", "<![CDATA[useUnicode=true&autoReconnect=true]]>"));
// all.add(defineJdbcDataSourceComponent("app", "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1:3306/cat", "root", "***", "<![CDATA[useUnicode=true&autoReconnect=true]]>"));
defineSimpleTableProviderComponents(all, "app", com.dianping.cat.app._INDEX.getEntityClasses());
defineDaoComponents(all, com.dianping.cat.app._INDEX.getDaoClasses());
......
......@@ -75,7 +75,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.req(ServerConfigManager.class, MessagePathBuilder.class, ServerStatisticManager.class));
all.add(C(Module.class, CatCoreModule.ID, CatCoreModule.class));
all.addAll(new CatCoreDatabaseConfigurator().defineComponents());
all.addAll(new CodecComponentConfigurator().defineComponents());
all.addAll(new StorageComponentConfigurator().defineComponents());
......
package com.dianping.cat.config.app;
import java.util.Map;
import org.unidal.dal.jdbc.QueryEngine;
import org.unidal.dal.jdbc.mapping.TableProvider;
import com.dianping.cat.app.AppDataCommand;
public class AppDataCommandTableProvider implements TableProvider {
private String m_logicalTableName = "app-data-command";
private String m_physicalTableName = "app_data_command";
private String m_dataSourceName = "app";
@Override
public String getDataSourceName(Map<String, Object> hints) {
return m_dataSourceName;
}
@Override
public String getLogicalTableName() {
return m_logicalTableName;
}
@Override
public String getPhysicalTableName(Map<String, Object> hints) {
AppDataCommand command = (AppDataCommand) hints.get(QueryEngine.HINT_DATA_OBJECT);
return m_physicalTableName + "_" + command.getCommandId();
}
public void setDataSourceName(String dataSourceName) {
m_dataSourceName = dataSourceName;
}
public void setLogicalTableName(String logicalTableName) {
m_logicalTableName = logicalTableName;
}
}
\ No newline at end of file
......@@ -12,10 +12,10 @@
<member name="connnect-type" field="connnect_type" value-type="int" length="3" nullable="false" />
<member name="code" field="code" value-type="int" length="5" nullable="false" />
<member name="platform" field="platform" value-type="int" length="3" nullable="false" />
<member name="access-number" field="access_number" value-type="String" length="16777215" nullable="false" />
<member name="response-sum-time" field="response_sum_time" value-type="String" length="16777215" nullable="false" />
<member name="request-package" field="request_package" value-type="String" length="16777215" nullable="false" />
<member name="response-package" field="response_package" value-type="String" length="16777215" nullable="false" />
<member name="access-number" field="access_number" value-type="long" length="19" nullable="false" />
<member name="response-sum-time" field="response_sum_time" value-type="long" length="19" nullable="false" />
<member name="request-package" field="request_package" value-type="long" length="19" nullable="false" />
<member name="response-package" field="response_package" value-type="long" length="19" nullable="false" />
<member name="creation-date" field="creation_date" value-type="Date" nullable="false" />
<var name="key-id" value-type="int" key-member="id" />
<primary-key name="PRIMARY" members="id" />
......
<?xml version="1.0" encoding="UTF-8"?>
<entities do-package="com.dianping.cat.app" gen="true" />
<entities do-package="com.dianping.cat.app" gen="true" >
<entity name="app-data-command" table="app_data_command" alias="adc">
<member name="access-number" field="access_number" value-type="long" length="19" nullable="false" />
<member name="response-sum-time" field="response_sum_time" value-type="long" length="19" nullable="false" />
<member name="request-package" field="request_package" value-type="long" length="19" nullable="false" />
<member name="response-package" field="response_package" value-type="long" length="19" nullable="false" />
<member name="creation-date" field="creation_date" value-type="Date" nullable="false" />
<member name="access-number-sum" value-type="long" all="false" select-expr="sum(access_number)" length="19" nullable="false" />
<member name="response-sum-time-sum" value-type="long" all="false" select-expr="sum(response-sum-time)" length="19" nullable="false" />
<var name="key-id" value-type="int" key-member="id" />
<var name="command-id" value-type="int" />
<readsets>
<readset name="DATA">
<member name="minute-order"/>
<member name="access-number-sum"/>
<member name="response-sum-time-sum"/>
</readset>
</readsets>
<query-defs>
<query name="insert-data" type="INSERT">
<param name="command-id" />
<statement><![CDATA[INSERT INTO <TABLE/>(<FIELDS/>)
VALUES(<VALUES/>)]]></statement>
</query>
<query name="find-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'/> ]]></statement>
</query>
</query-defs>
</entity>
</entities>
......@@ -27,7 +27,7 @@
<jdbc package="com.dianping.cat.app" name="app">
<datasource>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/app</url>
<url>jdbc:mysql://127.0.0.1:3306/cat</url>
<user>root</user>
<password>password</password>
<properties>useUnicode=true&amp;autoReconnect=true</properties>
......
......@@ -96,11 +96,6 @@
<version>2.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.unidal.framework</groupId>
<artifactId>dal-jdbc</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
......
......@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager;
import org.unidal.dal.jdbc.mapping.TableProvider;
import org.unidal.initialization.DefaultModuleManager;
import org.unidal.initialization.Module;
import org.unidal.initialization.ModuleManager;
......@@ -12,6 +13,7 @@ import org.unidal.lookup.configuration.Component;
import com.dianping.cat.CatHomeModule;
import com.dianping.cat.ServerConfigManager;
import com.dianping.cat.config.app.AppDataCommandTableProvider;
import com.dianping.cat.consumer.dependency.DependencyAnalyzer;
import com.dianping.cat.consumer.metric.MetricAnalyzer;
import com.dianping.cat.consumer.metric.MetricConfigManager;
......@@ -83,9 +85,42 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
public static void main(String[] args) {
generatePlexusComponentsXmlFile(new ComponentsConfigurator());
}
private List<Component> defineAlertComponents() {
List<Component> all = new ArrayList<Component>();
@Override
public List<Component> defineComponents() {
all.add(C(BusinessAlertConfig.class).req(AlertConfigManager.class));
all.add(C(NetworkAlertConfig.class).req(AlertConfigManager.class));
all.add(C(SystemAlertConfig.class).req(AlertConfigManager.class));
all.add(C(ExceptionAlertConfig.class).req(AlertConfigManager.class));
all.add(C(AlertInfo.class));
all.add(C(DefaultMailImpl.class).req(ServerConfigManager.class));
all.add(C(DataChecker.class, DefaultDataChecker.class));
all.add(C(RemoteMetricReportService.class).req(ServerConfigManager.class));
all.add(C(BusinessAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, BusinessAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, BusinessRuleConfigManager.class, DataChecker.class));
all.add(C(NetworkAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, NetworkAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, NetworkRuleConfigManager.class, DataChecker.class));
all.add(C(SystemAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, SystemAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, SystemRuleConfigManager.class, DataChecker.class));
all.add(C(AlertExceptionBuilder.class).req(ExceptionConfigManager.class));
all.add(C(ExceptionAlert.class).req(ProjectDao.class, ExceptionAlertConfig.class, MailSMS.class,
ExceptionConfigManager.class, AlertExceptionBuilder.class, AlertDao.class).req(ModelService.class,
TopAnalyzer.ID));
return all;
}
private List<Component> defineCommonComponents() {
List<Component> all = new ArrayList<Component>();
all.add(C(JsonBuilder.class));
......@@ -98,127 +133,106 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all.add(C(StateGraphs.class, StateGraphs.class).//
req(ReportService.class));
all.add(C(Module.class, CatHomeModule.ID, CatHomeModule.class));
all.add(C(ModuleManager.class, DefaultModuleManager.class) //
.config(E("topLevelModules").value(CatHomeModule.ID)));
all.add(C(DomainNavManager.class).req(ProjectDao.class));
all.add(C(EventCollectManager.class).req(EventDao.class, ServerConfigManager.class));
all.add(C(TopologyGraphConfigManager.class).req(ConfigDao.class));
all.add(C(ExceptionConfigManager.class).req(ConfigDao.class));
all.add(C(TopologyGraphItemBuilder.class).req(TopologyGraphConfigManager.class));
all.add(C(DomainGroupConfigManager.class).req(ConfigDao.class));
all.add(C(TopologyGraphBuilder.class).req(TopologyGraphItemBuilder.class).is(PER_LOOKUP));
all.add(C(BugConfigManager.class).req(ConfigDao.class));
all.add(C(TopologyGraphManager.class).req(TopologyGraphBuilder.class, ServerConfigManager.class) //
.req(ProductLineConfigManager.class, TopologyGraphDao.class, DomainNavManager.class)//
.req(ModelService.class, DependencyAnalyzer.ID));
all.add(C(MetricGroupConfigManager.class).req(ConfigDao.class));
// update project database
all.add(C(ProjectUpdateTask.class)//
.req(ProjectDao.class, HostinfoDao.class));
return all;
}
all.add(C(NetworkRuleConfigManager.class).req(ConfigDao.class));
@Override
public List<Component> defineComponents() {
List<Component> all = new ArrayList<Component>();
all.add(C(BusinessRuleConfigManager.class).req(ConfigDao.class));
all.addAll(defineCommonComponents());
all.addAll(defineConfigComponents());
all.addAll(defineMetricComponents());
all.addAll(defineAlertComponents());
all.add(C(Module.class, CatHomeModule.ID, CatHomeModule.class));
all.add(C(ModuleManager.class, DefaultModuleManager.class) //
.config(E("topLevelModules").value(CatHomeModule.ID)));
// report serivce
all.addAll(new ReportServiceComponentConfigurator().defineComponents());
// task
all.addAll(new TaskComponentConfigurator().defineComponents());
all.add(C(AlertConfigManager.class).req(ConfigDao.class));
// model service
all.addAll(new ServiceComponentConfigurator().defineComponents());
all.add(C(TopologyGraphItemBuilder.class).req(TopologyGraphConfigManager.class));
all.add(C(TableProvider.class,"app-data-command",AppDataCommandTableProvider.class));
// database
all.add(C(JdbcDataSourceDescriptorManager.class) //
.config(E("datasourceFile").value("/data/appdatas/cat/datasources.xml")));
all.addAll(new CatDatabaseConfigurator().defineComponents());
all.addAll(new AppDatabaseConfigurator().defineComponents());
all.addAll(new UserDatabaseConfigurator().defineComponents());
all.add(C(TopologyGraphBuilder.class).req(TopologyGraphItemBuilder.class).is(PER_LOOKUP));
// web, please keep it last
all.addAll(new WebComponentConfigurator().defineComponents());
all.add(C(TopologyGraphManager.class).req(TopologyGraphBuilder.class, ServerConfigManager.class) //
.req(ProductLineConfigManager.class, TopologyGraphDao.class, DomainNavManager.class)//
.req(ModelService.class, DependencyAnalyzer.ID));
// for alarm module
all.addAll(new AlarmComponentConfigurator().defineComponents());
return all;
}
private List<Component> defineConfigComponents(){
List<Component> all = new ArrayList<Component>();
all.add(C(TopologyGraphConfigManager.class).req(ConfigDao.class));
all.add(C(ExceptionConfigManager.class).req(ConfigDao.class));
all.add(C(DomainGroupConfigManager.class).req(ConfigDao.class));
all.add(C(BugConfigManager.class).req(ConfigDao.class));
all.add(C(MetricGroupConfigManager.class).req(ConfigDao.class));
all.add(C(NetworkRuleConfigManager.class).req(ConfigDao.class));
all.add(C(BusinessRuleConfigManager.class).req(ConfigDao.class));
all.add(C(AlertConfigManager.class).req(ConfigDao.class));
all.add(C(NetGraphConfigManager.class).req(ConfigDao.class));
all.add(C(ConfigReloadTask.class).req(MetricConfigManager.class, ProductLineConfigManager.class));
return all;
}
private List<Component> defineMetricComponents(){
List<Component> all = new ArrayList<Component>();
all.add(C(IpService.class));
all.add(C(CdnGraphCreator.class).req(BaselineService.class, DataExtractor.class, MetricDataFetcher.class,
CachedMetricReportService.class, MetricConfigManager.class, ProductLineConfigManager.class,
MetricGroupConfigManager.class, AlertInfo.class));
all.add(C(CachedMetricReportService.class, CachedMetricReportServiceImpl.class)
.req(ModelService.class, MetricAnalyzer.ID).req(ReportService.class).req(IpService.class));
all.add(C(DataExtractor.class, DataExtractorImpl.class));
all.add(C(MetricDataFetcher.class, MetricDataFetcherImpl.class));
all.add(C(AlertInfo.class).req(MetricConfigManager.class));
all.add(C(CdnGraphCreator.class).req(BaselineService.class, DataExtractor.class, MetricDataFetcher.class,
CachedMetricReportService.class, MetricConfigManager.class, ProductLineConfigManager.class,
MetricGroupConfigManager.class, AlertInfo.class));
all.add(C(MetricGraphCreator.class).req(CachedMetricReportService.class, DataExtractor.class,
MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class,
ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class));
all.add(C(SystemGraphCreator.class).req(CachedMetricReportService.class, DataExtractor.class,
MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class,
ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class));
all.add(C(UserMonitorGraphCreator.class, DefaultUserMonitGraphCreator.class).req(CachedMetricReportService.class,
DataExtractor.class, MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class,
ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class));
all.add(C(NetworkGraphCreator.class).req(CachedMetricReportService.class, DataExtractor.class,
MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class,
ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class));
// report serivce
all.addAll(new ReportServiceComponentConfigurator().defineComponents());
// task
all.addAll(new TaskComponentConfigurator().defineComponents());
// model service
all.addAll(new ServiceComponentConfigurator().defineComponents());
all.add(C(RemoteMetricReportService.class).req(ServerConfigManager.class));
all.add(C(BusinessAlertConfig.class).req(AlertConfigManager.class));
all.add(C(NetworkAlertConfig.class).req(AlertConfigManager.class));
all.add(C(SystemAlertConfig.class).req(AlertConfigManager.class));
all.add(C(ExceptionAlertConfig.class).req(AlertConfigManager.class));
all.add(C(AlertInfo.class));
all.add(C(DefaultMailImpl.class).req(ServerConfigManager.class));
all.add(C(DataChecker.class, DefaultDataChecker.class));
all.add(C(BusinessAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, BusinessAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, BusinessRuleConfigManager.class, DataChecker.class));
all.add(C(NetworkAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, NetworkAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, NetworkRuleConfigManager.class, DataChecker.class));
all.add(C(SystemAlert.class).req(MetricConfigManager.class, ProductLineConfigManager.class,
BaselineService.class, MailSMS.class, SystemAlertConfig.class, AlertInfo.class, AlertDao.class)//
.req(RemoteMetricReportService.class, SystemRuleConfigManager.class, DataChecker.class));
all.add(C(AlertExceptionBuilder.class).req(ExceptionConfigManager.class));
all.add(C(ExceptionAlert.class).req(ProjectDao.class, ExceptionAlertConfig.class, MailSMS.class,
ExceptionConfigManager.class, AlertExceptionBuilder.class, AlertDao.class).req(ModelService.class,
TopAnalyzer.ID));
all.add(C(NetGraphConfigManager.class).req(ConfigDao.class));
// database
all.add(C(JdbcDataSourceDescriptorManager.class) //
.config(E("datasourceFile").value("/data/appdatas/cat/datasources.xml")));
all.addAll(new CatDatabaseConfigurator().defineComponents());
all.addAll(new UserDatabaseConfigurator().defineComponents());
// update project database
all.add(C(ProjectUpdateTask.class)//
.req(ProjectDao.class, HostinfoDao.class));
// web, please keep it last
all.addAll(new WebComponentConfigurator().defineComponents());
// for alarm module
all.addAll(new AlarmComponentConfigurator().defineComponents());
return all;
}
......
......@@ -27,6 +27,8 @@ public class NavigationBar {
ReportPage.USERMONITOR,
ReportPage.APP,
ReportPage.TRANSACTION,
ReportPage.EVENT,
......
......@@ -344,10 +344,10 @@ CREATE TABLE `app_data_command` (
`connnect_type` tinyint NOT NULL COMMENT '访问类型,是否长连接',
`code` smallint NOT NULL COMMENT '返回码',
`platform` tinyint NOT NULL COMMENT '平台',
`access_number` long NOT NULL COMMENT '访问量',
`response_sum_time` long NOT NULL COMMENT '响应时间大小',
`request_package` long NOT NULL COMMENT '请求包大小',
`response_package` long NOT NULL COMMENT '响应包大小',
`access_number` bigint NOT NULL COMMENT '访问量',
`response_sum_time` bigint NOT NULL COMMENT '响应时间大小',
`request_package` bigint NOT NULL COMMENT '请求包大小',
`response_package` bigint NOT NULL COMMENT '响应包大小',
`creation_date` datetime NOT NULL COMMENT '数据插入时间',
PRIMARY KEY (`id`),
KEY IX_period_city_minute (period,city,minute_order),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册