提交 3d37004c 编写于 作者: J jialinsun

merge

......@@ -28,7 +28,6 @@ CAT监控系统将每次URL、Service的请求内部执行情况都封装为一
![Alt text](https://raw.github.com/dianping/cat/master/cat-home/src/main/webapp/images/logviewAll03.png)
Requirements
---------------------
* Java 6
......@@ -38,7 +37,7 @@ Requirements
Quick Started
---------------------
#####1、在CAT目录下,用maven构建项目
mvn clean install
mvn clean install -DskipTests
#####2、配置CAT的环境
mvn cat:install
Note:
......
......@@ -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>
......
......@@ -49,7 +49,7 @@
<plugin>
<groupId>org.unidal.maven.plugins</groupId>
<artifactId>codegen-maven-plugin</artifactId>
<version>2.0.8</version>
<version>2.0.14</version>
<executions>
<execution>
<id>generate plexus component descriptor</id>
......
......@@ -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;
......@@ -13,6 +14,7 @@ import org.unidal.lookup.configuration.Component;
import com.dianping.cat.CatHomeModule;
import com.dianping.cat.ServerConfigManager;
import com.dianping.cat.config.app.AppDataService;
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;
......@@ -85,9 +87,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));
......@@ -100,65 +135,103 @@ 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));
......
......@@ -27,6 +27,8 @@ public class NavigationBar {
ReportPage.USERMONITOR,
ReportPage.APP,
ReportPage.TRANSACTION,
ReportPage.EVENT,
......
......@@ -217,7 +217,7 @@ public class InstallMojo extends AbstractMojo {
}
});
m_user = PropertyProviders.fromConsole().forString("jdbc.user", "Please input username:", null, null, null);
m_password = PropertyProviders.fromConsole().forString("jdbc.password", "Please input password:", null, null,
m_password = PropertyProviders.fromConsole().forString("jdbc.password", "Please input password:", null, "",
null);
}
}
\ No newline at end of file
use cat;
CREATE TABLE `DP_AdminLogin` (
`LoginID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`AdminID` int(10) DEFAULT NULL,
`LoginName` varchar(128) DEFAULT NULL COMMENT '登陆名',
`Password` varchar(128) DEFAULT NULL COMMENT '密码',
`Email` varchar(128) DEFAULT NULL COMMENT '邮箱',
`RealName` varchar(128) DEFAULT NULL COMMENT '真实姓名',
`MobileNo` varchar(128) DEFAULT NULL COMMENT '手机号码',
PRIMARY KEY (`LoginID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
CREATE TABLE `dailygraph` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称',
`ip` varchar(20) NULL COMMENT '报表来自于哪台cat-client机器ip, 空串表示合并同domain所有ip',
`ip` varchar(50) NULL COMMENT '报表来自于哪台cat-client机器ip, 空串表示合并同domain所有ip',
`domain` varchar(50) NOT NULL COMMENT '报表处理的Domain信息',
`period` datetime NOT NULL COMMENT '报表时间段',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 3/csv, 默认3',
......@@ -28,7 +17,7 @@ CREATE TABLE `dailygraph` (
CREATE TABLE `dailyreport` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称, transaction, problem...',
`ip` varchar(20) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`ip` varchar(50) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`domain` varchar(50) NOT NULL COMMENT '报表处理的Domain信息',
`period` datetime NOT NULL COMMENT '报表时间段',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 默认1',
......@@ -41,7 +30,7 @@ CREATE TABLE `dailyreport` (
CREATE TABLE `weeklyreport` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称, transaction, problem...',
`ip` varchar(20) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`ip` varchar(50) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`domain` varchar(50) NOT NULL COMMENT '报表处理的Domain信息',
`period` datetime NOT NULL COMMENT '报表时间段',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 默认1',
......@@ -54,7 +43,7 @@ CREATE TABLE `weeklyreport` (
CREATE TABLE `monthreport` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称, transaction, problem...',
`ip` varchar(20) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`ip` varchar(50) NOT NULL COMMENT '报表来自于哪台cat-consumer机器',
`domain` varchar(50) NOT NULL COMMENT '报表处理的Domain信息',
`period` datetime NOT NULL COMMENT '报表时间段',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 默认1',
......@@ -67,7 +56,7 @@ CREATE TABLE `monthreport` (
CREATE TABLE `graph` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称',
`ip` varchar(20) NULL COMMENT '报表来自于哪台cat-client机器ip, NULL表示合并同domain所有ip',
`ip` varchar(50) NULL COMMENT '报表来自于哪台cat-client机器ip, NULL表示合并同domain所有ip',
`domain` varchar(50) NOT NULL COMMENT '报表处理的Domain信息',
`period` datetime NOT NULL COMMENT '报表时间段',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 3/csv, 默认3',
......@@ -81,33 +70,23 @@ CREATE TABLE `graph` (
CREATE TABLE `hostinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL COMMENT '部署机器IP',
`domain` varchar(50) NOT NULL COMMENT '部署机器对应的项目名',
`domain` varchar(256) NOT NULL COMMENT '部署机器对应的项目名',
`hostname` varchar(256) DEFAULT NULL COMMENT '机器域名',
`creation_date` datetime NOT NULL,
`last_modified_date` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ip_index` (`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='IP和项目名的对应关系';
CREATE TABLE `location` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lat` double NOT NULL,
`lng` double NOT NULL,
`total` int(11) NOT NULL,
`transaction_date` datetime NOT NULL,
`creation_date` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `transaction_date_lat_lng` (`transaction_date`,`lat`,`lng`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用于热点图地理位置表';
CREATE TABLE `report` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` tinyint(4) NOT NULL COMMENT '报表类型, 1/xml, 9/binary 默认1',
`name` varchar(20) NOT NULL COMMENT '报表名称',
`ip` varchar(20) DEFAULT NULL COMMENT '报表来自于哪台机器',
`ip` varchar(50) DEFAULT NULL COMMENT '报表来自于哪台机器',
`domain` varchar(50) NOT NULL COMMENT '报表项目',
`period` timestamp NOT NULL COMMENT '报表时间段',
`content` longtext NULL,
`creation_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '报表创建时间',
`creation_date` timestamp NOT NULL COMMENT '报表创建时间',
PRIMARY KEY (`id`),
KEY `IX_Domain_Name_Period` (`domain`,`name`,`period`),
KEY `IX_Name_Period` (`name`,`period`),
......@@ -146,39 +125,16 @@ CREATE TABLE `businessReport` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` tinyint(4) NOT NULL COMMENT '报表类型 报表数据格式, 1/Binary, 2/xml , 3/json',
`name` varchar(20) NOT NULL COMMENT '报表名称',
`ip` varchar(20) NOT NULL COMMENT '报表来自于哪台机器',
`ip` varchar(50) NOT NULL COMMENT '报表来自于哪台机器',
`productLine` varchar(50) NOT NULL COMMENT '指标来源于哪个产品组',
`period` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '报表时间段',
`content` longblob COMMENT '用于存放报表的具体内容',
`creation_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '报表创建时间',
`creation_date` timestamp NOT NULL COMMENT '报表创建时间',
PRIMARY KEY (`id`),
KEY `IX_Group_Name_Period` (`productLine`,`name`,`period`),
KEY `IX_Name_Period` (`name`,`period`),
KEY `IX_Period` (`period`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED COMMENT='用于存放业务监控实时报表信息,处理之后的结果';
CREATE TABLE `sqlreport` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`domain` varchar(50) NOT NULL,
`name` varchar(100) NOT NULL COMMENT 'SQL的名称',
`statement` varchar(3000) NOT NULL COMMENT 'SQL的具体描述',
`total_count` int(11) NOT NULL COMMENT '总数',
`failure_count` int(11) NOT NULL COMMENT '错误数目',
`long_sqls` int(11) NOT NULL COMMENT 'longsql的数目',
`min_value` double NOT NULL COMMENT '最小值',
`max_value` double NOT NULL COMMENT '最大值',
`avg2_value` double NOT NULL COMMENT '90%的平均值',
`sum_value` double NOT NULL COMMENT '和',
`sum2_value` double NOT NULL COMMENT '平方和',
`sample_link` varchar(64) NOT NULL COMMENT '链接',
`transaction_date` datetime NOT NULL COMMENT 'SQL的时间段',
`creation_date` datetime NOT NULL COMMENT '数据库创建时间',
`duration_distribution` varchar(512) NOT NULL COMMENT 'SQL处理的时间分布信息',
`hits_over_time` varchar(512) NOT NULL COMMENT 'SQL在当前一个小时处理信息',
`duration_over_time` varchar(512) NOT NULL COMMENT 'SQL处理时间的信息',
`failure_over_time` varchar(512) NOT NULL COMMENT '在一个小时内的错误分布',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用于存放Hadoop处理的SQL报表信息';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED COMMENT='用于存放业务监控实时报表信息,处理之后的结果';
CREATE TABLE `sqltable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
......@@ -276,29 +232,29 @@ CREATE TABLE `scheduledReportSubscription` (
CREATE TABLE `project` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`domain` varchar(50) NOT NULL COMMENT '项目名称',
`domain` varchar(256) NOT NULL COMMENT '项目名称',
`cmdb_domain` varchar(256) DEFAULT NULL COMMENT 'cmdb项目名称',
`project_line` varchar(50) DEFAULT NULL COMMENT '关联产品线名称',
`department` varchar(50) DEFAULT NULL COMMENT '关联项目组名称',
`owner` varchar(50) DEFAULT NULL COMMENT '项目负责人',
`email` varchar(200) DEFAULT NULL COMMENT '项目组邮件',
`email` varchar(256) DEFAULT NULL COMMENT '项目组邮件',
`phone` varchar(256) DEFAULT NULL COMMENT '联系电话',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`modify_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
PRIMARY KEY (`id`),
KEY `domain` (`domain`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='项目基本信息';
CREATE TABLE `event` (
CREATE TABLE `topologyGraph` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL COMMENT '1、运维系统告警,2、DB告警,3、CAT内容告警',
`link` varchar(500) DEFAULT NULL COMMENT '详细信息link',
`domain` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`ip` varchar(32) DEFAULT NULL COMMENT '错误机器IP',
`subject` varchar(200) DEFAULT NULL COMMENT '事件标题',
`content` text COMMENT '事件内容',
`date` datetime NOT NULL COMMENT '事件发生时间',
`creation_date` datetime NOT NULL COMMENT '记录创建时间',
`ip` varchar(50) NOT NULL COMMENT '报表来自于哪台cat-client机器ip',
`period` datetime NOT NULL COMMENT '报表时间段,精确到分钟',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 3/binary',
`content` longblob COMMENT '用于存放报表的具体内容',
`creation_date` datetime NOT NULL COMMENT '报表创建时间',
PRIMARY KEY (`id`),
KEY `ix_date_domain` (`date`,`domain`)
) ENGINE=InnoDB AUTO_INCREMENT=23106 DEFAULT CHARSET=utf8 COMMENT='事件记录表';
KEY `period` (`period`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用于存储历史的拓扑图曲线';
CREATE TABLE `config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
......@@ -310,67 +266,19 @@ CREATE TABLE `config` (
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用于存储系统的全局配置信息';
CREATE TABLE `abtest` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(45) NOT NULL COMMENT '名字',
`owner` varchar(45) NOT NULL COMMENT 'case的Owner',
`group_strategy` int(11) DEFAULT NULL COMMENT '分组策略ID',
`domains` varchar(200) DEFAULT NULL COMMENT 'Domains,逗号分割',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`modified_date` datetime DEFAULT NULL COMMENT '上次修改时间',
`description` varchar(512) DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AB测试内容';
CREATE TABLE `abtest_report` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`run_id` int(11) DEFAULT NULL,
`period` datetime DEFAULT NULL,
`content` text,
`creation_date` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AB测试报表';
CREATE TABLE `abtest_run` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`creator` varchar(45) DEFAULT NULL COMMENT 'Creator',
`case_id` int(11) NOT NULL COMMENT 'Case ID',
`start_date` datetime DEFAULT NULL COMMENT '开始时间',
`end_date` datetime DEFAULT NULL COMMENT '结束时间',
`disabled` tinyint(4) NOT NULL COMMENT '是否有效',
`domains` varchar(100) NOT NULL COMMENT '属于的domain,用逗号分割',
`conditions` text,
`java_fragement` text,
`conversion_goals` text,
`strategy_configuration` text COMMENT '策略配置',
`creation_date` datetime NOT NULL COMMENT '创建时间',
`modified_date` datetime NOT NULL COMMENT '上次修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AB测试运行实例';
CREATE TABLE `group_strategy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL COMMENT 'GroupStrategy的名字',
`class_name` varchar(100) NOT NULL COMMENT 'GroupStrategy的英文名',
`fully_qualified_name` varchar(100) NOT NULL COMMENT 'GroupStrategy的class名字',
`descriptor` text COMMENT '配置的schema',
`status` tinyint(4) NOT NULL COMMENT '是否开/关,1是开,0是关',
`description` varchar(512) DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用于记录分组策略';
CREATE TABLE `topologyGraph` (
CREATE TABLE `event` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(20) DEFAULT NULL COMMENT '报表来自于哪台cat-client机器ip',
`period` datetime NOT NULL COMMENT '报表时间段,精确到分钟',
`type` tinyint(4) NOT NULL COMMENT '报表数据格式, 1/xml, 2/json, 3/binary',
`content` longblob COMMENT '用于存放报表的具体内容',
`creation_date` datetime NOT NULL COMMENT '报表创建时间',
`type` int(11) NOT NULL COMMENT '1、运维系统告警,2、DB告警,3、CAT内容告警',
`link` varchar(500) DEFAULT NULL COMMENT '详细信息link',
`domain` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`ip` varchar(32) DEFAULT NULL COMMENT '错误机器IP',
`subject` varchar(200) DEFAULT NULL COMMENT '事件标题',
`content` text COMMENT '事件内容',
`date` datetime NOT NULL COMMENT '事件发生时间',
`creation_date` datetime NOT NULL COMMENT '记录创建时间',
PRIMARY KEY (`id`),
KEY `period` (`period`)
) ENGINE=InnoDB AUTO_INCREMENT=21912 DEFAULT CHARSET=utf8 COMMENT='用于存储历史的拓扑图曲线';
KEY `ix_date_domain` (`date`,`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='事件记录表';
CREATE TABLE `baseline` (
`id` int(11) NOT NULL AUTO_INCREMENT,
......@@ -382,14 +290,69 @@ CREATE TABLE `baseline` (
PRIMARY KEY (`id`),
KEY `ix_indexkey_reportperiod` (`index_key`,`report_period`),
KEY `ix_reportperiod` (`report_period`)
) ENGINE=InnoDB AUTO_INCREMENT=5062 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user_agent` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`userAgent` varchar(200) NOT NULL DEFAULT '',
`browser` varchar(100) DEFAULT '',
`version` varchar(100) DEFAULT '',
`os` varchar(100) DEFAULT '',
CREATE TABLE `alteration` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`type` varchar(64) NOT NULL COMMENT '分类',
`title` varchar(128) NOT NULL COMMENT '变更标题',
`domain` varchar(128) NOT NULL COMMENT '变更项目',
`hostname` varchar(128) NOT NULL COMMENT '变更机器名',
`ip` varchar(128) DEFAULT NULL COMMENT '变更机器IP',
`date` datetime NOT NULL COMMENT '变更时间',
`user` varchar(45) NOT NULL COMMENT '变更用户',
`alt_group` varchar(45) DEFAULT NULL COMMENT '变更组别',
`content` text NOT NULL COMMENT '变更内容',
`url` varchar(200) DEFAULT NULL COMMENT '变更链接',
`creation_date` datetime NOT NULL COMMENT '数据库创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `userAgent` (`userAgent`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
KEY `ind_date_domain_host` (`date`,`domain`,`hostname`)
) ENGINE=InnoDB AUTO_INCREMENT=1241 DEFAULT CHARSET=utf8 COMMENT='变更表';
CREATE TABLE `alert` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`domain` varchar(128) NOT NULL COMMENT '告警项目',
`alert_time` datetime NOT NULL COMMENT '告警时间',
`category` varchar(64) NOT NULL COMMENT '告警分类:network/business/system/exception -alert',
`type` varchar(64) NOT NULL COMMENT '告警类型:error/warning',
`content` text NOT NULL COMMENT '告警内容',
`metric` varchar(128) NOT NULL COMMENT '告警指标',
`creation_date` datetime NOT NULL COMMENT '数据插入时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储告警信息';
CREATE TABLE `alert_summary` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`domain` varchar(128) NOT NULL COMMENT '告警项目',
`alert_time` datetime NOT NULL COMMENT '告警时间',
`content` text NOT NULL COMMENT '统一告警内容',
`creation_date` datetime NOT NULL COMMENT '数据插入时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统一告警信息';
CREATE TABLE `app_data_command` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`period` date NOT NULL COMMENT '时间',
`minute_order` smallint NOT NULL COMMENT '分钟',
`city` smallint NOT NULL COMMENT '城市',
`operator` tinyint NOT NULL COMMENT '运营商',
`network` tinyint NOT NULL COMMENT '网络类型',
`app_version` smallint NOT NULL COMMENT '版本',
`connnect_type` tinyint NOT NULL COMMENT '访问类型,是否长连接',
`code` smallint NOT NULL COMMENT '返回码',
`platform` tinyint 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 '响应包大小',
`status` smallint NOT NULL COMMENT '数据状态',
`creation_date` datetime NOT NULL COMMENT '数据插入时间',
PRIMARY KEY (`id`),
KEY IX_period_city_minute (period,city,minute_order),
KEY IX_period_operator_minute (period,network,minute_order),
KEY IX_period_network_minute (period,network,minute_order),
KEY IX_period_version_minute (period,app_version,minute_order),
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基本数据';
\ No newline at end of file
......@@ -17,6 +17,7 @@
<module>cat-home</module>
<module>cat-broker</module>
<module>cat-agent</module>
<module>cat-maven-plugin</module>
</modules>
<dependencyManagement>
<dependencies>
......
CREATE DATABASE cat;
use cat;
CREATE TABLE `dailygraph` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '报表名称',
......@@ -244,7 +240,7 @@ CREATE TABLE `project` (
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`modify_date` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`)
KEY `domain` (`domain`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='项目基本信息';
CREATE TABLE `topologyGraph` (
......@@ -336,7 +332,6 @@ CREATE TABLE `app_data_command` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`period` date NOT NULL COMMENT '时间',
`minute_order` smallint NOT NULL COMMENT '分钟',
`status` smallint NOT NULL COMMENT '数据状态',
`city` smallint NOT NULL COMMENT '城市',
`operator` tinyint NOT NULL COMMENT '运营商',
`network` tinyint NOT NULL COMMENT '网络类型',
......@@ -344,10 +339,11 @@ 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 '响应包大小',
`status` smallint 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.
先完成此消息的编辑!
想要评论请 注册