Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
ba159e63
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ba159e63
编写于
10月 14, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the cat report table to binary storage
上级
e3343b98
变更
45
隐藏空白更改
内联
并排
Showing
45 changed file
with
749 addition
and
274 deletion
+749
-274
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java
...va/com/dianping/cat/consumer/browser/BrowserDelegate.java
+12
-0
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
...m/dianping/cat/consumer/build/ComponentsConfigurator.java
+5
-4
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/cross/CrossDelegate.java
...n/java/com/dianping/cat/consumer/cross/CrossDelegate.java
+12
-0
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/dependency/DependencyDelegate.java
.../dianping/cat/consumer/dependency/DependencyDelegate.java
+12
-0
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/matrix/MatrixDelegate.java
...java/com/dianping/cat/consumer/matrix/MatrixDelegate.java
+12
-0
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/sql/SqlDelegate.java
.../main/java/com/dianping/cat/consumer/sql/SqlDelegate.java
+14
-1
cat-consumer-advanced/src/main/resources/META-INF/dal/model/browser-report-codegen.xml
...n/resources/META-INF/dal/model/browser-report-codegen.xml
+1
-1
cat-consumer-advanced/src/main/resources/META-INF/dal/model/browser-report-model.xml
...ain/resources/META-INF/dal/model/browser-report-model.xml
+2
-2
cat-consumer-advanced/src/main/resources/META-INF/dal/model/cross-report-model.xml
.../main/resources/META-INF/dal/model/cross-report-model.xml
+1
-1
cat-consumer-advanced/src/main/resources/META-INF/dal/model/dependency-report-model.xml
.../resources/META-INF/dal/model/dependency-report-model.xml
+1
-1
cat-consumer-advanced/src/main/resources/META-INF/dal/model/matrix-report-model.xml
...main/resources/META-INF/dal/model/matrix-report-model.xml
+1
-1
cat-consumer-advanced/src/main/resources/META-INF/dal/model/sql-report-model.xml
...rc/main/resources/META-INF/dal/model/sql-report-model.xml
+1
-1
cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml
...dvanced/src/main/resources/META-INF/plexus/components.xml
+12
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
...m/dianping/cat/consumer/build/ComponentsConfigurator.java
+7
-6
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventDelegate.java
...n/java/com/dianping/cat/consumer/event/EventDelegate.java
+12
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatDelegate.java
...om/dianping/cat/consumer/heartbeat/HeartbeatDelegate.java
+12
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemDelegate.java
...va/com/dianping/cat/consumer/problem/ProblemDelegate.java
+14
-2
cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateDelegate.java
...n/java/com/dianping/cat/consumer/state/StateDelegate.java
+12
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopDelegate.java
.../main/java/com/dianping/cat/consumer/top/TopDelegate.java
+12
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionDelegate.java
...ianping/cat/consumer/transaction/TransactionDelegate.java
+15
-2
cat-consumer/src/main/resources/META-INF/dal/model/event-report-model.xml
.../main/resources/META-INF/dal/model/event-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/dal/model/heartbeat-report-model.xml
...n/resources/META-INF/dal/model/heartbeat-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/dal/model/problem-report-model.xml
...ain/resources/META-INF/dal/model/problem-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/dal/model/state-report-model.xml
.../main/resources/META-INF/dal/model/state-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/dal/model/top-report-model.xml
...rc/main/resources/META-INF/dal/model/top-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/dal/model/transaction-report-model.xml
...resources/META-INF/dal/model/transaction-report-model.xml
+1
-1
cat-consumer/src/main/resources/META-INF/plexus/components.xml
...onsumer/src/main/resources/META-INF/plexus/components.xml
+18
-0
cat-core/pom.xml
cat-core/pom.xml
+95
-96
cat-core/src/main/java/com/dianping/cat/service/DefaultReportManager.java
...n/java/com/dianping/cat/service/DefaultReportManager.java
+22
-1
cat-core/src/main/java/com/dianping/cat/service/ReportDelegate.java
...rc/main/java/com/dianping/cat/service/ReportDelegate.java
+4
-0
cat-core/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
...e/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
+97
-62
cat-core/src/main/resources/META-INF/dal/jdbc/report-dal.xml
cat-core/src/main/resources/META-INF/dal/jdbc/report-dal.xml
+4
-1
cat-core/src/main/resources/META-INF/plexus/components.xml
cat-core/src/main/resources/META-INF/plexus/components.xml
+59
-40
cat-core/src/main/resources/META-INF/wizard/jdbc/wizard.xml
cat-core/src/main/resources/META-INF/wizard/jdbc/wizard.xml
+7
-6
cat-core/src/test/java/com/dianping/cat/consumer/AllTests.java
...ore/src/test/java/com/dianping/cat/consumer/AllTests.java
+15
-0
cat-core/src/test/java/com/dianping/cat/core/AllTests.java
cat-core/src/test/java/com/dianping/cat/core/AllTests.java
+15
-0
cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java
.../java/com/dianping/cat/build/CatDatabaseConfigurator.java
+2
-1
cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java
...ianping/cat/build/ReportServiceComponentConfigurator.java
+26
-25
cat-home/src/main/java/com/dianping/cat/report/page/statistics/Model.java
...n/java/com/dianping/cat/report/page/statistics/Model.java
+0
-1
cat-home/src/main/java/com/dianping/cat/report/service/AbstractReportService.java
...om/dianping/cat/report/service/AbstractReportService.java
+4
-0
cat-home/src/main/java/com/dianping/cat/report/service/impl/TransactionReportService.java
...ing/cat/report/service/impl/TransactionReportService.java
+27
-6
cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
...e/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
+88
-1
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+81
-1
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
+1
-0
script/Cat.sql
script/Cat.sql
+8
-5
未找到文件。
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java
浏览文件 @
ba159e63
...
...
@@ -9,6 +9,8 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.consumer.browser.BrowserReportMerger
;
import
com.dianping.cat.consumer.browser.model.entity.BrowserReport
;
import
com.dianping.cat.consumer.browser.model.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.browser.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.browser.model.transform.DefaultNativeParser
;
import
com.dianping.cat.service.ReportDelegate
;
import
com.dianping.cat.task.TaskManager
;
import
com.dianping.cat.task.TaskManager.TaskProlicy
;
...
...
@@ -71,4 +73,14 @@ public class BrowserDelegate implements ReportDelegate<BrowserReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
BrowserReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
BrowserReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
浏览文件 @
ba159e63
...
...
@@ -29,6 +29,7 @@ import com.dianping.cat.consumer.sql.SqlAnalyzer;
import
com.dianping.cat.consumer.sql.SqlDelegate
;
import
com.dianping.cat.consumer.sql.SqlParseManager
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.dal.HourlyReportContentDao
;
import
com.dianping.cat.core.dal.HourlyReportDao
;
import
com.dianping.cat.service.DefaultReportManager
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -74,7 +75,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
MatrixDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -89,7 +90,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
ServerConfigManager
.
class
,
DomainManager
.
class
,
DatabaseParser
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
DependencyDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -104,7 +105,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
CrossDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -121,7 +122,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
SqlParseManager
.
class
,
DatabaseParser
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
SqlDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/cross/CrossDelegate.java
浏览文件 @
ba159e63
...
...
@@ -6,6 +6,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.cross.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.cross.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.cross.model.entity.CrossReport
;
import
com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -70,4 +72,14 @@ public class CrossDelegate implements ReportDelegate<CrossReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
CrossReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
CrossReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/dependency/DependencyDelegate.java
浏览文件 @
ba159e63
...
...
@@ -6,6 +6,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.dependency.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.dependency.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.dependency.model.entity.DependencyReport
;
import
com.dianping.cat.consumer.dependency.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -70,4 +72,14 @@ public class DependencyDelegate implements ReportDelegate<DependencyReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
DependencyReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
DependencyReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/matrix/MatrixDelegate.java
浏览文件 @
ba159e63
...
...
@@ -6,6 +6,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.matrix.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.matrix.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.matrix.model.entity.MatrixReport
;
import
com.dianping.cat.consumer.matrix.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -72,4 +74,14 @@ public class MatrixDelegate implements ReportDelegate<MatrixReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
MatrixReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
MatrixReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/sql/SqlDelegate.java
浏览文件 @
ba159e63
...
...
@@ -7,6 +7,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.sql.model.entity.SqlReport
;
import
com.dianping.cat.consumer.sql.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.sql.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.sql.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
import
com.dianping.cat.task.TaskManager
;
...
...
@@ -38,7 +40,8 @@ public class SqlDelegate implements ReportDelegate<SqlReport> {
@Override
public
boolean
createHourlyTask
(
SqlReport
report
)
{
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
report
.
getDomain
(),
SqlAnalyzer
.
ID
,
TaskProlicy
.
ALL_EXCLUED_HOURLY
);
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
report
.
getDomain
(),
SqlAnalyzer
.
ID
,
TaskProlicy
.
ALL_EXCLUED_HOURLY
);
}
@Override
...
...
@@ -70,4 +73,14 @@ public class SqlDelegate implements ReportDelegate<SqlReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
SqlReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
SqlReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer-advanced/src/main/resources/META-INF/dal/model/browser-report-codegen.xml
浏览文件 @
ba159e63
...
...
@@ -18,8 +18,8 @@
<entity-ref
name=
"browser-version"
type=
"list"
names=
"browser-versions"
/>
</entity>
<entity
name=
"browser-version"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"count"
value-type=
"int"
/>
<element
name=
"text"
value-type=
"double"
text=
"true"
/>
</entity>
<entity
name=
"os"
>
<attribute
name=
"id"
value-type=
"String"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/dal/model/browser-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.browser.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"browser-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
@@ -19,8 +19,8 @@
<entity-ref
name=
"browser-version"
type=
"map"
names=
"browser-versions"
method-find-or-create=
"true"
/>
</entity>
<entity
name=
"browser-version"
>
<attribute
name=
"id"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"count"
value-type=
"long"
primitive=
"true"
/>
<element
name=
"text"
value-type=
"String"
text=
"true"
key=
"true"
/>
</entity>
<entity
name=
"os"
>
<attribute
name=
"id"
value-type=
"String"
key=
"true"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/dal/model/cross-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.cross.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"cross-report"
root=
"true"
>
<attribute
name=
"domain"
key=
"true"
/>
<element
name=
"domain"
value-type=
"String"
type=
"set"
names=
"domain-names"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/dal/model/dependency-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.dependency.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"dependency-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/dal/model/matrix-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.matrix.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"matrix-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/dal/model/sql-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.sql.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"sql-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer-advanced/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
ba159e63
...
...
@@ -49,6 +49,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -94,6 +97,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -139,6 +145,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -190,6 +199,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
浏览文件 @
ba159e63
...
...
@@ -35,6 +35,7 @@ import com.dianping.cat.consumer.top.TopDelegate;
import
com.dianping.cat.consumer.transaction.TransactionAnalyzer
;
import
com.dianping.cat.consumer.transaction.TransactionDelegate
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.dal.HourlyReportContentDao
;
import
com.dianping.cat.core.dal.HourlyReportDao
;
import
com.dianping.cat.message.spi.core.MessageConsumer
;
import
com.dianping.cat.service.DefaultReportManager
;
...
...
@@ -86,7 +87,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
EventDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -101,7 +102,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
HeartbeatDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -131,7 +132,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
new
String
[]
{
DefaultProblemHandler
.
ID
,
LongExecutionProblemHandler
.
ID
},
"m_handlers"
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
ProblemDelegate
.
class
)
//
.
req
(
ProblemReportAggregation
.
class
,
TaskManager
.
class
));
...
...
@@ -147,7 +148,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ServerConfigManager
.
class
,
DomainManager
.
class
,
ServerStatisticManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
StateDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
@@ -162,7 +163,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
TopDelegate
.
class
));
...
...
@@ -177,7 +178,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportManager
.
class
,
ID
).
req
(
ReportDelegate
.
class
,
ID
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
)
//
.
req
(
BucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
TransactionDelegate
.
class
).
req
(
TaskManager
.
class
));
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventDelegate.java
浏览文件 @
ba159e63
...
...
@@ -7,6 +7,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.event.model.entity.EventReport
;
import
com.dianping.cat.consumer.event.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.event.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.event.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
import
com.dianping.cat.task.TaskManager
;
...
...
@@ -70,4 +72,14 @@ public class EventDelegate implements ReportDelegate<EventReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
EventReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
EventReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatDelegate.java
浏览文件 @
ba159e63
...
...
@@ -6,6 +6,8 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.consumer.heartbeat.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.heartbeat.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport
;
import
com.dianping.cat.consumer.heartbeat.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -70,4 +72,14 @@ public class HeartbeatDelegate implements ReportDelegate<HeartbeatReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
HeartbeatReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
HeartbeatReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemDelegate.java
浏览文件 @
ba159e63
...
...
@@ -8,6 +8,8 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.consumer.problem.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.problem.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -40,7 +42,7 @@ public class ProblemDelegate implements ReportDelegate<ProblemReport> {
reports
.
put
(
all
.
getDomain
(),
all
);
}
ProblemReport
frontEnd
=
reports
.
get
(
Constants
.
FRONT_END
);
if
(
frontEnd
!=
null
)
{
...
...
@@ -54,7 +56,7 @@ public class ProblemDelegate implements ReportDelegate<ProblemReport> {
return
m_problemReportAggregation
.
getReport
();
}
private
boolean
validateDomain
(
String
domain
)
{
return
!
domain
.
equals
(
Constants
.
FRONT_END
);
}
...
...
@@ -116,4 +118,14 @@ public class ProblemDelegate implements ReportDelegate<ProblemReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
ProblemReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
ProblemReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateDelegate.java
浏览文件 @
ba159e63
...
...
@@ -6,6 +6,8 @@ import java.util.Map;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.consumer.state.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.state.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.state.model.entity.StateReport
;
import
com.dianping.cat.consumer.state.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -72,4 +74,14 @@ public class StateDelegate implements ReportDelegate<StateReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
StateReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
StateReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopDelegate.java
浏览文件 @
ba159e63
...
...
@@ -3,6 +3,8 @@ package com.dianping.cat.consumer.top;
import
java.util.Date
;
import
java.util.Map
;
import
com.dianping.cat.consumer.top.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.top.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.top.model.entity.TopReport
;
import
com.dianping.cat.consumer.top.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
...
...
@@ -56,4 +58,14 @@ public class TopDelegate implements ReportDelegate<TopReport> {
return
report
;
}
@Override
public
byte
[]
buildBinary
(
TopReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
TopReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
}
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionDelegate.java
浏览文件 @
ba159e63
...
...
@@ -11,6 +11,8 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultNativeParser
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser
;
import
com.dianping.cat.service.ReportDelegate
;
import
com.dianping.cat.task.TaskManager
;
...
...
@@ -20,7 +22,7 @@ public class TransactionDelegate implements ReportDelegate<TransactionReport> {
@Inject
private
TaskManager
m_taskManager
;
@Override
public
void
afterLoad
(
Map
<
String
,
TransactionReport
>
reports
)
{
}
...
...
@@ -41,6 +43,11 @@ public class TransactionDelegate implements ReportDelegate<TransactionReport> {
}
}
@Override
public
byte
[]
buildBinary
(
TransactionReport
report
)
{
return
DefaultNativeBuilder
.
build
(
report
);
}
@Override
public
String
buildXml
(
TransactionReport
report
)
{
report
.
accept
(
new
TransactionStatisticsComputer
());
...
...
@@ -72,7 +79,8 @@ public class TransactionDelegate implements ReportDelegate<TransactionReport> {
@Override
public
boolean
createHourlyTask
(
TransactionReport
report
)
{
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
report
.
getDomain
(),
TransactionAnalyzer
.
ID
,
TaskProlicy
.
ALL
);
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
report
.
getDomain
(),
TransactionAnalyzer
.
ID
,
TaskProlicy
.
ALL
);
}
@Override
...
...
@@ -98,6 +106,11 @@ public class TransactionDelegate implements ReportDelegate<TransactionReport> {
return
old
;
}
@Override
public
TransactionReport
parseBinary
(
byte
[]
bytes
)
{
return
DefaultNativeParser
.
parse
(
bytes
);
}
@Override
public
TransactionReport
parseXml
(
String
xml
)
throws
Exception
{
TransactionReport
report
=
DefaultSaxParser
.
parse
(
xml
);
...
...
cat-consumer/src/main/resources/META-INF/dal/model/event-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.event.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"event-report"
root=
"true"
>
<attribute
name=
"domain"
key=
"true"
/>
<element
name=
"domain"
value-type=
"String"
type=
"set"
names=
"domain-names"
/>
...
...
cat-consumer/src/main/resources/META-INF/dal/model/heartbeat-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.heartbeat.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"heartbeat-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer/src/main/resources/META-INF/dal/model/problem-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.problem.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"problem-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<element
name=
"domain"
value-type=
"String"
type=
"set"
names=
"domain-names"
/>
...
...
cat-consumer/src/main/resources/META-INF/dal/model/state-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.state.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"state-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer/src/main/resources/META-INF/dal/model/top-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.top.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"top-report"
root=
"true"
>
<attribute
name=
"domain"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer/src/main/resources/META-INF/dal/model/transaction-report-model.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.transaction.model"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
enable-base-visitor=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
>
<entity
name=
"transaction-report"
root=
"true"
>
<attribute
name=
"domain"
key=
"true"
/>
<attribute
name=
"startTime"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
...
...
cat-consumer/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
ba159e63
...
...
@@ -49,6 +49,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -91,6 +94,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -189,6 +195,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -234,6 +243,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -279,6 +291,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -340,6 +355,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
cat-core/pom.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
parent
</artifactId>
<version>
0.6.2
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cat-core
</artifactId>
<name>
cat-core
</name>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
cat-client
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
foundation-service
</artifactId>
<version>
2.0.3
</version>
</dependency>
<dependency>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
parent
</artifactId>
<version>
0.6.2
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
cat-core
</artifactId>
<name>
cat-core
</name>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
cat-client
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
foundation-service
</artifactId>
<version>
2.0.3
</version>
</dependency>
<dependency>
<groupId>
org.unidal.webres
</groupId>
<artifactId>
WebResBase
</artifactId>
<version>
1.2.0
</version>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
dal-jdbc
</artifactId>
<version>
2.0.3
</version>
</dependency>
<dependency>
<groupId>
org.jboss.netty
</groupId>
<artifactId>
netty
</artifactId>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<optional>
true
</optional>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
test-framework
</artifactId>
<version>
2.0.3
</version>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.unidal.maven.plugins
</groupId>
<artifactId>
codegen-maven-plugin
</artifactId>
<version>
2.0.5
</version>
<executions>
<execution>
<id>
generate data model
</id>
<phase>
generate-sources
</phase>
<goals>
<goal>
dal-model
</goal>
</goals>
<configuration>
<
manifest>
${basedir}/src/main/resources/META-INF/dal/model/server-manifest.xml,
</manifest
>
</configura
tion>
</execution
>
<execution
>
<id>
generate dal jdbc model
</id
>
<phase>
generate-sources
</phase
>
<
goals>
<goal>
dal-jdbc
</goal
>
</goals>
<configuration>
<
manifest>
${basedir}/src/main/resources/META-INF/dal/jdbc/report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/jdbc/config-manifest.xml,
</manifest
>
</configuration
>
</execution
>
<execution
>
<id>
generate plexus component descriptor
</id
>
<phase>
process-classes
</phase
>
<goals
>
<goal>
plexus
</goal
>
</goals
>
<configura
tion>
<className>
com.dianping.cat.build.ComponentsConfigurator
</className
>
</configuratio
n>
</execution
>
</executions
>
</plugin
>
</plugins
>
</build
>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
dal-jdbc
</artifactId>
<version>
2.0.3
</version>
</dependency>
<dependency>
<groupId>
org.jboss.netty
</groupId>
<artifactId>
netty
</artifactId>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<optional>
true
</optional>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
test-framework
</artifactId>
<version>
2.0.3
</version>
<scope>
test
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.unidal.maven.plugins
</groupId>
<artifactId>
codegen-maven-plugin
</artifactId>
<version>
2.0.5
</version>
<executions>
<execution>
<id>
generate data model
</id>
<phase>
generate-sources
</phase>
<goals>
<goal>
dal-model
</goal>
</goals>
<configuration>
<manifest>
${basedir}/src/main/resources/META-INF/dal/model/server-manifest.xml,
</
manifest>
</configuration>
</execution
>
<execu
tion>
<id>
generate dal jdbc model
</id
>
<phase>
generate-sources
</phase
>
<goals
>
<goal>
dal-jdbc
</goal
>
</
goals>
<configuration
>
<manifest>
${basedir}/src/main/resources/META-INF/dal/jdbc/report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/jdbc/config-manifest.xml,
<![CDATA[${basedir}/src/main/resources/META-INF/dal/jdbc/report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/jdbc/config-manifest.xml,]]>
</
manifest>
</configuration>
</execution>
<execution
>
<id>
generate plexus component descriptor
</id
>
<phase>
process-classes
</phase
>
<goals
>
<goal>
plexus
</goal
>
</goals
>
<configuration
>
<className>
com.dianping.cat.build.ComponentsConfigurator
</className
>
</configuration
>
</execu
tion>
</executions
>
</plugi
n>
</plugins
>
</build
>
<properties
>
<project.build.sourceEncoding>
utf-8
</project.build.sourceEncoding
>
</properties
>
</project>
cat-core/src/main/java/com/dianping/cat/service/DefaultReportManager.java
浏览文件 @
ba159e63
...
...
@@ -20,6 +20,8 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.configuration.NetworkInterfaceManager
;
import
com.dianping.cat.core.dal.HourlyReport
;
import
com.dianping.cat.core.dal.HourlyReportContent
;
import
com.dianping.cat.core.dal.HourlyReportContentDao
;
import
com.dianping.cat.core.dal.HourlyReportDao
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.Transaction
;
...
...
@@ -40,6 +42,9 @@ public class DefaultReportManager<T> implements ReportManager<T>, LogEnabled {
@Inject
private
HourlyReportDao
m_reportDao
;
@Inject
private
HourlyReportContentDao
m_reportContentDao
;
private
String
m_name
;
private
Map
<
Long
,
Map
<
String
,
T
>>
m_map
=
new
ConcurrentHashMap
<
Long
,
Map
<
String
,
T
>>();
...
...
@@ -212,9 +217,25 @@ public class DefaultReportManager<T> implements ReportManager<T>, LogEnabled {
r
.
setPeriod
(
period
);
r
.
setIp
(
ip
);
r
.
setType
(
1
);
r
.
setContent
(
xml
);
if
(!
"transaction"
.
equals
(
m_name
))
{
r
.
setContent
(
xml
);
}
else
{
r
.
setContent
(
""
);
}
m_reportDao
.
insert
(
r
);
if
(
"transaction"
.
equals
(
m_name
))
{
int
id
=
r
.
getId
();
byte
[]
binaryContent
=
m_reportDelegate
.
buildBinary
(
report
);
HourlyReportContent
content
=
m_reportContentDao
.
createLocal
();
content
.
setReportId
(
id
);
content
.
setContent
(
binaryContent
);
m_reportContentDao
.
insert
(
content
);
}
m_reportDelegate
.
createHourlyTask
(
report
);
}
catch
(
Throwable
e
)
{
t
.
setStatus
(
e
);
...
...
cat-core/src/main/java/com/dianping/cat/service/ReportDelegate.java
浏览文件 @
ba159e63
...
...
@@ -7,6 +7,10 @@ public interface ReportDelegate<T> {
public
void
beforeSave
(
Map
<
String
,
T
>
reports
);
public
byte
[]
buildBinary
(
T
report
);
public
T
parseBinary
(
byte
[]
bytes
);
public
String
buildXml
(
T
report
);
public
String
getDomain
(
T
report
);
...
...
cat-core/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="UTF-8"?>
<entities>
<entity
name=
"
hostinfo"
table=
"hostinfo"
alias=
"h
"
>
<entity
name=
"
dailygraph"
table=
"dailygraph"
alias=
"d
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"period"
field=
"period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"detail-content"
field=
"detail_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"summary-content"
field=
"summary_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"last-modified-date"
field=
"last_modified_date"
value-type=
"Date"
nullable=
"false"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<index
name=
"
ip_index"
unique=
"true"
members=
"ip
ASC"
/>
<index
name=
"
dailygraph_period_ip_domain_name"
unique=
"true"
members=
"period ASC, ip ASC, domain ASC, name
ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -39,17 +43,19 @@
</query>
</query-defs>
</entity>
<entity
name=
"
project"
table=
"project"
alias=
"p
"
>
<entity
name=
"
dailyreport"
table=
"dailyreport"
alias=
"d2
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"
domain"
field=
"domain"
value-type=
"String"
length=
"5
0"
nullable=
"false"
/>
<member
name=
"
project-line"
field=
"project_line"
value-type=
"String"
length=
"50
"
/>
<member
name=
"d
epartment"
field=
"department"
value-type=
"String"
length=
"50
"
/>
<member
name=
"
owner"
field=
"owner"
value-type=
"String"
length=
"50
"
/>
<member
name=
"
email"
field=
"email"
value-type=
"String"
length=
"200
"
/>
<member
name=
"c
reation-date"
field=
"creation_date"
value-type=
"Dat
e"
/>
<member
name=
"
modify-date"
field=
"modify_date"
value-type=
"Dat
e"
/>
<member
name=
"
name"
field=
"name"
value-type=
"String"
length=
"2
0"
nullable=
"false"
/>
<member
name=
"
ip"
field=
"ip"
value-type=
"String"
length=
"20"
nullable=
"false
"
/>
<member
name=
"d
omain"
field=
"domain"
value-type=
"String"
length=
"20"
nullable=
"false
"
/>
<member
name=
"
period"
field=
"period"
value-type=
"Date"
nullable=
"false
"
/>
<member
name=
"
type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false
"
/>
<member
name=
"c
ontent"
field=
"content"
value-type=
"String"
length=
"16777215"
nullable=
"fals
e"
/>
<member
name=
"
creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"fals
e"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<index
name=
"period"
unique=
"true"
members=
"period ASC, domain ASC, name ASC"
/>
<index
name=
"type"
members=
"type ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -80,20 +86,19 @@
</query>
</query-defs>
</entity>
<entity
name=
"
report"
table=
"report"
alias=
"r
"
>
<entity
name=
"
graph"
table=
"graph"
alias=
"g
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"
5
0"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"
2
0"
nullable=
"false"
/>
<member
name=
"period"
field=
"period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"content"
field=
"content"
value-type=
"String"
length=
"2147483647"
nullable=
"false"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"detail-content"
field=
"detail_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"summary-content"
field=
"summary_content"
value-type=
"String"
length=
"16777215"
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"
/>
<index
name=
"IX_Domain_Name_Period"
members=
"domain ASC, name ASC, period ASC"
/>
<index
name=
"IX_Name_Period"
members=
"name ASC, period ASC"
/>
<index
name=
"IX_Period"
members=
"period ASC"
/>
<index
name=
"graph_period_ip_domain_name"
unique=
"true"
members=
"period ASC, ip ASC, domain ASC, name ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -124,23 +129,15 @@
</query>
</query-defs>
</entity>
<entity
name=
"
task"
table=
"task"
alias=
"t
"
>
<entity
name=
"
hostinfo"
table=
"hostinfo"
alias=
"h
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"producer"
field=
"producer"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"consumer"
field=
"consumer"
value-type=
"String"
length=
"20"
/>
<member
name=
"failure-count"
field=
"failure_count"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"report-name"
field=
"report_name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"report-domain"
field=
"report_domain"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"report-period"
field=
"report_period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"status"
field=
"status"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"start-date"
field=
"start_date"
value-type=
"Date"
/>
<member
name=
"end-date"
field=
"end_date"
value-type=
"Date"
/>
<member
name=
"task-type"
field=
"task_type"
value-type=
"int"
length=
"3"
/>
<member
name=
"last-modified-date"
field=
"last_modified_date"
value-type=
"Date"
nullable=
"false"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<index
name=
"task_period_domain_name"
unique=
"true"
members=
"report_period ASC, report_domain ASC, report_name ASC, task_type ASC"
/>
<index
name=
"status"
members=
"status ASC"
/>
<index
name=
"ip_index"
unique=
"true"
members=
"ip ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -171,19 +168,18 @@
</query>
</query-defs>
</entity>
<entity
name=
"
dailygraph"
table=
"dailygraph"
alias=
"d
"
>
<entity
name=
"
monthreport"
table=
"monthreport"
alias=
"m
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"period"
field=
"period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"detail-content"
field=
"detail_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"summary-content"
field=
"summary_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"content"
field=
"content"
value-type=
"String"
length=
"16777215"
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"
/>
<index
name=
"
dailygraph_period_ip_domain_name"
unique=
"true"
members=
"period ASC, ip
ASC, domain ASC, name ASC"
/>
<index
name=
"
period"
unique=
"true"
members=
"period
ASC, domain ASC, name ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -214,19 +210,17 @@
</query>
</query-defs>
</entity>
<entity
name=
"
dailyreport"
table=
"dailyreport"
alias=
"d2
"
>
<entity
name=
"
project"
table=
"project"
alias=
"p
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"
name"
field=
"name"
value-type=
"String"
length=
"2
0"
nullable=
"false"
/>
<member
name=
"
ip"
field=
"ip"
value-type=
"String"
length=
"20"
nullable=
"false
"
/>
<member
name=
"d
omain"
field=
"domain"
value-type=
"String"
length=
"20"
nullable=
"false
"
/>
<member
name=
"
period"
field=
"period"
value-type=
"Date"
nullable=
"false
"
/>
<member
name=
"
type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false
"
/>
<member
name=
"c
ontent"
field=
"content"
value-type=
"String"
length=
"16777215"
nullable=
"fals
e"
/>
<member
name=
"
creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"fals
e"
/>
<member
name=
"
domain"
field=
"domain"
value-type=
"String"
length=
"5
0"
nullable=
"false"
/>
<member
name=
"
project-line"
field=
"project_line"
value-type=
"String"
length=
"50
"
/>
<member
name=
"d
epartment"
field=
"department"
value-type=
"String"
length=
"50
"
/>
<member
name=
"
owner"
field=
"owner"
value-type=
"String"
length=
"50
"
/>
<member
name=
"
email"
field=
"email"
value-type=
"String"
length=
"200
"
/>
<member
name=
"c
reation-date"
field=
"creation_date"
value-type=
"Dat
e"
/>
<member
name=
"
modify-date"
field=
"modify_date"
value-type=
"Dat
e"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<index
name=
"period"
unique=
"true"
members=
"period ASC, domain ASC, name ASC"
/>
<index
name=
"type"
members=
"type ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -257,19 +251,20 @@
</query>
</query-defs>
</entity>
<entity
name=
"
graph"
table=
"graph"
alias=
"g
"
>
<entity
name=
"
report"
table=
"report"
alias=
"r
"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"
2
0"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"
5
0"
nullable=
"false"
/>
<member
name=
"period"
field=
"period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"detail-content"
field=
"detail_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"summary-content"
field=
"summary_content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"content"
field=
"content"
value-type=
"String"
length=
"2147483647"
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"
/>
<index
name=
"graph_period_ip_domain_name"
unique=
"true"
members=
"period ASC, ip ASC, domain ASC, name ASC"
/>
<index
name=
"IX_Domain_Name_Period"
members=
"domain ASC, name ASC, period ASC"
/>
<index
name=
"IX_Name_Period"
members=
"name ASC, period ASC"
/>
<index
name=
"IX_Period"
members=
"period ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
@@ -300,18 +295,58 @@
</query>
</query-defs>
</entity>
<entity
name=
"monthreport"
table=
"monthreport"
alias=
"m"
>
<entity
name=
"report-content"
table=
"report_content"
alias=
"rc"
>
<member
name=
"report-id"
field=
"report_id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
/>
<member
name=
"content"
field=
"content"
value-type=
"byte[]"
length=
"2147483647"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<var
name=
"key-report-id"
value-type=
"int"
key-member=
"report-id"
/>
<primary-key
name=
"PRIMARY"
members=
"report_id"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
<updatesets>
<updateset
name=
"FULL"
all=
"true"
/>
</updatesets>
<query-defs>
<query
name=
"find-by-PK"
type=
"SELECT"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[SELECT <FIELDS/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
<query
name=
"insert"
type=
"INSERT"
>
<statement>
<![CDATA[INSERT INTO <TABLE/>
(
<FIELDS/>
)
VALUES(
<VALUES/>
)]]>
</statement>
</query>
<query
name=
"update-by-PK"
type=
"UPDATE"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[UPDATE <TABLE/>
SET
<FIELDS/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
<query
name=
"delete-by-PK"
type=
"DELETE"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[DELETE FROM <TABLE/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"task"
table=
"task"
alias=
"t"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"ip"
field=
"ip"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"period"
field=
"period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"type"
field=
"type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"content"
field=
"content"
value-type=
"String"
length=
"16777215"
nullable=
"false"
/>
<member
name=
"producer"
field=
"producer"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"consumer"
field=
"consumer"
value-type=
"String"
length=
"20"
/>
<member
name=
"failure-count"
field=
"failure_count"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"report-name"
field=
"report_name"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"report-domain"
field=
"report_domain"
value-type=
"String"
length=
"20"
nullable=
"false"
/>
<member
name=
"report-period"
field=
"report_period"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"status"
field=
"status"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"task-type"
field=
"task_type"
value-type=
"int"
length=
"3"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"start-date"
field=
"start_date"
value-type=
"Date"
/>
<member
name=
"end-date"
field=
"end_date"
value-type=
"Date"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<index
name=
"
period"
unique=
"true"
members=
"period ASC, domain ASC, nam
e ASC"
/>
<index
name=
"
task_period_domain_name_type"
unique=
"true"
members=
"report_period ASC, report_domain ASC, report_name ASC, task_typ
e ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
cat-core/src/main/resources/META-INF/dal/jdbc/report-dal.xml
浏览文件 @
ba159e63
...
...
@@ -229,7 +229,10 @@
</query>
</query-defs>
</entity>
<entity
name=
"report-content"
table=
"report_content"
alias=
"rc"
class-name=
"HourlyReportContent"
>
<query-defs>
</query-defs>
</entity>
<entity
name=
"report"
table=
"report"
alias=
"r"
class-name=
"HourlyReport"
>
<member
name=
"creation-date"
insert-expr=
"NOW()"
/>
<var
name=
"start-date"
value-type=
"Date"
/>
...
...
cat-core/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
ba159e63
...
...
@@ -154,81 +154,91 @@
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
hostinfo
</role-hint>
<role-hint>
dailygraph
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
hostinfo
</logical-table-name>
<physical-table-name>
hostinfo
</physical-table-name>
<logical-table-name>
dailygraph
</logical-table-name>
<physical-table-name>
dailygraph
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
projec
t
</role-hint>
<role-hint>
dailyrepor
t
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
projec
t
</logical-table-name>
<physical-table-name>
projec
t
</physical-table-name>
<logical-table-name>
dailyrepor
t
</logical-table-name>
<physical-table-name>
dailyrepor
t
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
report
</role-hint>
<role-hint>
graph
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
report
</logical-table-name>
<physical-table-name>
report
</physical-table-name>
<logical-table-name>
graph
</logical-table-name>
<physical-table-name>
graph
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
task
</role-hint>
<role-hint>
hostinfo
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
task
</logical-table-name>
<physical-table-name>
task
</physical-table-name>
<logical-table-name>
hostinfo
</logical-table-name>
<physical-table-name>
hostinfo
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
dailygraph
</role-hint>
<role-hint>
monthreport
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
dailygraph
</logical-table-name>
<physical-table-name>
dailygraph
</physical-table-name>
<logical-table-name>
monthreport
</logical-table-name>
<physical-table-name>
monthreport
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
dailyrepor
t
</role-hint>
<role-hint>
projec
t
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
dailyrepor
t
</logical-table-name>
<physical-table-name>
dailyrepor
t
</physical-table-name>
<logical-table-name>
projec
t
</logical-table-name>
<physical-table-name>
projec
t
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
graph
</role-hint>
<role-hint>
report
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
graph
</logical-table-name>
<physical-table-name>
graph
</physical-table-name>
<logical-table-name>
report
</logical-table-name>
<physical-table-name>
report
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
monthrepor
t
</role-hint>
<role-hint>
report-conten
t
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
monthreport
</logical-table-name>
<physical-table-name>
monthreport
</physical-table-name>
<logical-table-name>
report-content
</logical-table-name>
<physical-table-name>
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>
task
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
task
</logical-table-name>
<physical-table-name>
task
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
...
...
@@ -243,8 +253,8 @@
</configuration>
</component>
<component>
<role>
com.dianping.cat.core.dal.
Hostinfo
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
Hostinfo
Dao
</implementation>
<role>
com.dianping.cat.core.dal.
DailyGraph
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
DailyGraph
Dao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -252,8 +262,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
Projec
tDao
</role>
<implementation>
com.dianping.cat.core.dal.
Projec
tDao
</implementation>
<role>
com.dianping.cat.core.dal.
DailyRepor
tDao
</role>
<implementation>
com.dianping.cat.core.dal.
DailyRepor
tDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -261,8 +271,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
HourlyReport
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
HourlyReport
Dao
</implementation>
<role>
com.dianping.cat.core.dal.
Graph
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
Graph
Dao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -270,8 +280,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
Task
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
Task
Dao
</implementation>
<role>
com.dianping.cat.core.dal.
Hostinfo
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
Hostinfo
Dao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -279,8 +289,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
DailyGraph
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
DailyGraph
Dao
</implementation>
<role>
com.dianping.cat.core.dal.
MonthlyReport
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
MonthlyReport
Dao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -288,8 +298,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
DailyRepor
tDao
</role>
<implementation>
com.dianping.cat.core.dal.
DailyRepor
tDao
</implementation>
<role>
com.dianping.cat.core.dal.
Projec
tDao
</role>
<implementation>
com.dianping.cat.core.dal.
Projec
tDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -297,8 +307,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.
Graph
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
Graph
Dao
</implementation>
<role>
com.dianping.cat.core.dal.
HourlyReport
Dao
</role>
<implementation>
com.dianping.cat.core.dal.
HourlyReport
Dao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -306,8 +316,17 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
<implementation>
com.dianping.cat.core.dal.MonthlyReportDao
</implementation>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
<implementation>
com.dianping.cat.core.dal.HourlyReportContentDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.TaskDao
</role>
<implementation>
com.dianping.cat.core.dal.TaskDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
cat-core/src/main/resources/META-INF/wizard/jdbc/wizard.xml
浏览文件 @
ba159e63
<?xml version="1.0" encoding="utf-8"?>
<wizard
package=
"com.dianping.cat.co
nsumer
"
>
<jdbc
package=
"com.d
ainping.cat.consumer.dal
"
name=
"cat"
>
<wizard
package=
"com.dianping.cat.co
re
"
>
<jdbc
package=
"com.d
ianping.cat.core
"
name=
"cat"
>
<datasource>
<driver>
com.mysql.jdbc.Driver
</driver>
<url>
jdbc:mysql://1
92.168.7.43
:3306/cat
</url>
<user>
dpcom_ca
t
</user>
<url>
jdbc:mysql://1
27.0.0.1
:3306/cat
</url>
<user>
roo
t
</user>
<password>
password
</password>
<properties>
useUnicode=true
&
autoReconnect=true
</properties>
</datasource>
<group
name=
"report"
package=
"com.d
ainping.cat.consumer.dal.report
"
>
<group
name=
"report"
package=
"com.d
ianping.cat.core.dal
"
>
<table
name=
"hostinfo"
/>
<table
name=
"task"
/>
<table
name=
"project"
/>
...
...
@@ -18,8 +18,9 @@
<table
name=
"monthreport"
/>
<table
name=
"graph"
/>
<table
name=
"dailygraph"
/>
<table
name=
"report_content"
/>
</group>
<group
name=
"config"
package=
"com.d
ainping.cat.consumer.dal
.config"
>
<group
name=
"config"
package=
"com.d
ianping.cat.core
.config"
>
<table
name=
"config"
/>
</group>
</jdbc>
...
...
cat-core/src/test/java/com/dianping/cat/consumer/AllTests.java
0 → 100644
浏览文件 @
ba159e63
package
com.dianping.cat.consumer
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Suite
;
import
org.junit.runners.Suite.SuiteClasses
;
@RunWith
(
Suite
.
class
)
@SuiteClasses
({
// add test classes here
})
public
class
AllTests
{
}
cat-core/src/test/java/com/dianping/cat/core/AllTests.java
0 → 100644
浏览文件 @
ba159e63
package
com.dianping.cat.core
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Suite
;
import
org.junit.runners.Suite.SuiteClasses
;
@RunWith
(
Suite
.
class
)
@SuiteClasses
({
// add test classes here
})
public
class
AllTests
{
}
cat-home/src/main/java/com/dianping/cat/build/CatDatabaseConfigurator.java
浏览文件 @
ba159e63
...
...
@@ -11,7 +11,8 @@ final class CatDatabaseConfigurator extends AbstractJdbcResourceConfigurator {
public
List
<
Component
>
defineComponents
()
{
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
all
.
add
(
defineJdbcDataSourceComponent
(
"cat"
,
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://127.0.0.1:3306/cat"
,
"root"
,
""
,
"<![CDATA[useUnicode=true&autoReconnect=true]]>"
));
all
.
add
(
defineJdbcDataSourceComponent
(
"cat"
,
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://127.0.0.1:3306/cat"
,
"root"
,
"password"
,
"<![CDATA[useUnicode=true&autoReconnect=true]]>"
));
defineSimpleTableProviderComponents
(
all
,
"cat"
,
com
.
dianping
.
cat
.
home
.
dal
.
report
.
_INDEX
.
getEntityClasses
());
defineDaoComponents
(
all
,
com
.
dianping
.
cat
.
home
.
dal
.
report
.
_INDEX
.
getDaoClasses
());
...
...
cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java
浏览文件 @
ba159e63
...
...
@@ -8,6 +8,7 @@ import org.unidal.lookup.configuration.Component;
import
com.dianping.cat.consumer.advanced.dal.BusinessReportDao
;
import
com.dianping.cat.core.dal.DailyReportDao
;
import
com.dianping.cat.core.dal.HourlyReportContentDao
;
import
com.dianping.cat.core.dal.HourlyReportDao
;
import
com.dianping.cat.core.dal.MonthlyReportDao
;
import
com.dianping.cat.core.dal.WeeklyReportDao
;
...
...
@@ -34,34 +35,34 @@ public class ReportServiceComponentConfigurator extends AbstractResourceConfigur
public
List
<
Component
>
defineComponents
()
{
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
all
.
add
(
C
(
TransactionReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
EventReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
ProblemReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
MatrixReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
CrossReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
SqlReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
Week
lyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
StateReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
TransactionReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
EventReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
ProblemReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
MatrixReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
CrossReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
SqlReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
,
Dai
lyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
StateReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
TopReportService
.
class
).
req
(
HourlyReportDao
.
class
));
all
.
add
(
C
(
DependencyReportService
.
class
).
req
(
HourlyReportDao
.
class
));
all
.
add
(
C
(
HeartbeatReportService
.
class
).
req
(
HourlyReportDao
.
class
));
all
.
add
(
C
(
TopReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
));
all
.
add
(
C
(
DependencyReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
));
all
.
add
(
C
(
HeartbeatReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
));
all
.
add
(
C
(
MetricReportService
.
class
).
req
(
HourlyReportDao
.
class
,
BusinessReportDao
.
class
));
all
.
add
(
C
(
BugReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
Week
lyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
UtilizationReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
ServiceReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
HeavyReportService
.
class
).
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyRepor
tDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
BugReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
,
Dai
lyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
UtilizationReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
ServiceReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
HeavyReportService
.
class
).
req
(
HourlyReportDao
.
class
,
HourlyReportConten
tDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
));
all
.
add
(
C
(
ReportService
.
class
,
DefaultReportService
.
class
)
.
req
(
HourlyReportDao
.
class
,
DailyReportDao
.
class
,
WeeklyReportDao
.
class
,
MonthlyReportDao
.
class
)
//
...
...
cat-home/src/main/java/com/dianping/cat/report/page/statistics/Model.java
浏览文件 @
ba159e63
...
...
@@ -52,7 +52,6 @@ public class Model extends AbstractReportModel<Action, Context> {
return
m_utilizationWebList
;
}
public
List
<
com
.
dianping
.
cat
.
home
.
utilization
.
entity
.
Domain
>
getUtilizationServiceList
()
{
return
m_utilizationServiceList
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/service/AbstractReportService.java
浏览文件 @
ba159e63
...
...
@@ -11,6 +11,7 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.core.dal.HourlyReport
;
import
com.dianping.cat.core.dal.HourlyReportContentDao
;
import
com.dianping.cat.core.dal.HourlyReportDao
;
import
com.dianping.cat.core.dal.HourlyReportEntity
;
import
com.dianping.cat.helper.TimeUtil
;
...
...
@@ -19,6 +20,9 @@ public abstract class AbstractReportService<T> {
@Inject
protected
HourlyReportDao
m_hourlyReportDao
;
@Inject
protected
HourlyReportContentDao
m_hourlyReportContentDao
;
public
static
final
int
s_hourly
=
1
;
...
...
cat-home/src/main/java/com/dianping/cat/report/service/impl/TransactionReportService.java
浏览文件 @
ba159e63
...
...
@@ -11,10 +11,13 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.consumer.transaction.TransactionAnalyzer
;
import
com.dianping.cat.consumer.transaction.TransactionReportMerger
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultNativeParser
;
import
com.dianping.cat.core.dal.DailyReport
;
import
com.dianping.cat.core.dal.DailyReportDao
;
import
com.dianping.cat.core.dal.DailyReportEntity
;
import
com.dianping.cat.core.dal.HourlyReport
;
import
com.dianping.cat.core.dal.HourlyReportContent
;
import
com.dianping.cat.core.dal.HourlyReportContentEntity
;
import
com.dianping.cat.core.dal.HourlyReportEntity
;
import
com.dianping.cat.core.dal.MonthlyReport
;
import
com.dianping.cat.core.dal.MonthlyReportDao
;
...
...
@@ -23,7 +26,6 @@ import com.dianping.cat.core.dal.WeeklyReport;
import
com.dianping.cat.core.dal.WeeklyReportDao
;
import
com.dianping.cat.core.dal.WeeklyReportEntity
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.report.service.AbstractReportService
;
public
class
TransactionReportService
extends
AbstractReportService
<
TransactionReport
>
{
...
...
@@ -46,6 +48,16 @@ public class TransactionReportService extends AbstractReportService<TransactionR
return
report
;
}
private
TransactionReport
queryFromBinary
(
int
id
,
String
domain
)
throws
DalException
{
HourlyReportContent
content
=
m_hourlyReportContentDao
.
findByPK
(
id
,
HourlyReportContentEntity
.
READSET_FULL
);
if
(
content
!=
null
)
{
return
DefaultNativeParser
.
parse
(
content
.
getContent
());
}
else
{
return
new
TransactionReport
(
domain
);
}
}
@Override
public
TransactionReport
queryDailyReport
(
String
domain
,
Date
start
,
Date
end
)
{
TransactionReportMerger
merger
=
new
TransactionReportMerger
(
new
TransactionReport
(
domain
));
...
...
@@ -58,6 +70,11 @@ public class TransactionReportService extends AbstractReportService<TransactionR
DailyReport
report
=
m_dailyReportDao
.
findByDomainNamePeriod
(
domain
,
name
,
new
Date
(
startTime
),
DailyReportEntity
.
READSET_FULL
);
String
xml
=
report
.
getContent
();
if
(
xml
==
null
||
xml
.
length
()
==
0
)
{
}
TransactionReport
reportModel
=
com
.
dianping
.
cat
.
consumer
.
transaction
.
model
.
transform
.
DefaultSaxParser
.
parse
(
xml
);
reportModel
.
accept
(
merger
);
...
...
@@ -92,13 +109,17 @@ public class TransactionReportService extends AbstractReportService<TransactionR
String
xml
=
report
.
getContent
();
try
{
TransactionReport
reportModel
=
com
.
dianping
.
cat
.
consumer
.
transaction
.
model
.
transform
.
DefaultSaxParser
.
parse
(
xml
);
reportModel
.
accept
(
merger
);
if
(
xml
!=
null
&&
xml
.
length
()
>
0
)
{
// for old xml storage
TransactionReport
reportModel
=
com
.
dianping
.
cat
.
consumer
.
transaction
.
model
.
transform
.
DefaultSaxParser
.
parse
(
xml
);
reportModel
.
accept
(
merger
);
}
else
{
// for new binary storage, binary is same to report id
TransactionReport
reportModel
=
queryFromBinary
(
report
.
getId
(),
domain
);
reportModel
.
accept
(
merger
);
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
Cat
.
getProducer
().
logEvent
(
"ErrorXML"
,
name
,
Message
.
SUCCESS
,
report
.
getDomain
()
+
" "
+
report
.
getPeriod
()
+
" "
+
report
.
getId
());
}
}
}
...
...
cat-home/src/main/resources/META-INF/dal/jdbc/report-codegen.xml
浏览文件 @
ba159e63
...
...
@@ -51,7 +51,94 @@
<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"
/>
<index
name=
"ix_date_domain"
members=
"date ASC, domain ASC"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
<updatesets>
<updateset
name=
"FULL"
all=
"true"
/>
</updatesets>
<query-defs>
<query
name=
"find-by-PK"
type=
"SELECT"
>
<param
name=
"key-id"
/>
<statement>
<![CDATA[SELECT <FIELDS/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'id'
/>
= ${key-id}]]>
</statement>
</query>
<query
name=
"insert"
type=
"INSERT"
>
<statement>
<![CDATA[INSERT INTO <TABLE/>
(
<FIELDS/>
)
VALUES(
<VALUES/>
)]]>
</statement>
</query>
<query
name=
"update-by-PK"
type=
"UPDATE"
>
<param
name=
"key-id"
/>
<statement>
<![CDATA[UPDATE <TABLE/>
SET
<FIELDS/>
WHERE
<FIELD
name=
'id'
/>
= ${key-id}]]>
</statement>
</query>
<query
name=
"delete-by-PK"
type=
"DELETE"
>
<param
name=
"key-id"
/>
<statement>
<![CDATA[DELETE FROM <TABLE/>
WHERE
<FIELD
name=
'id'
/>
= ${key-id}]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"report-content"
table=
"report_content"
alias=
"rc"
>
<member
name=
"report-id"
field=
"report_id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
/>
<member
name=
"content"
field=
"content"
value-type=
"byte[]"
length=
"2147483647"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<var
name=
"key-report-id"
value-type=
"int"
key-member=
"report-id"
/>
<primary-key
name=
"PRIMARY"
members=
"report_id"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
<updatesets>
<updateset
name=
"FULL"
all=
"true"
/>
</updatesets>
<query-defs>
<query
name=
"find-by-PK"
type=
"SELECT"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[SELECT <FIELDS/>
FROM
<TABLE/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
<query
name=
"insert"
type=
"INSERT"
>
<statement>
<![CDATA[INSERT INTO <TABLE/>
(
<FIELDS/>
)
VALUES(
<VALUES/>
)]]>
</statement>
</query>
<query
name=
"update-by-PK"
type=
"UPDATE"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[UPDATE <TABLE/>
SET
<FIELDS/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
<query
name=
"delete-by-PK"
type=
"DELETE"
>
<param
name=
"key-report-id"
/>
<statement>
<![CDATA[DELETE FROM <TABLE/>
WHERE
<FIELD
name=
'report-id'
/>
= ${key-report-id}]]>
</statement>
</query>
</query-defs>
</entity>
<entity
name=
"sqlreport"
table=
"sqlreport"
alias=
"s"
>
<member
name=
"id"
field=
"id"
value-type=
"int"
length=
"10"
nullable=
"false"
key=
"true"
auto-increment=
"true"
/>
<member
name=
"domain"
field=
"domain"
value-type=
"String"
length=
"50"
nullable=
"false"
/>
<member
name=
"name"
field=
"name"
value-type=
"String"
length=
"100"
nullable=
"false"
/>
<member
name=
"statement"
field=
"statement"
value-type=
"String"
length=
"3000"
nullable=
"false"
/>
<member
name=
"total-count"
field=
"total_count"
value-type=
"int"
length=
"10"
nullable=
"false"
/>
<member
name=
"failure-count"
field=
"failure_count"
value-type=
"int"
length=
"10"
nullable=
"false"
/>
<member
name=
"long-sqls"
field=
"long_sqls"
value-type=
"int"
length=
"10"
nullable=
"false"
/>
<member
name=
"min-value"
field=
"min_value"
value-type=
"double"
length=
"22"
nullable=
"false"
/>
<member
name=
"max-value"
field=
"max_value"
value-type=
"double"
length=
"22"
nullable=
"false"
/>
<member
name=
"avg2-value"
field=
"avg2_value"
value-type=
"double"
length=
"22"
nullable=
"false"
/>
<member
name=
"sum-value"
field=
"sum_value"
value-type=
"double"
length=
"22"
nullable=
"false"
/>
<member
name=
"sum2-value"
field=
"sum2_value"
value-type=
"double"
length=
"22"
nullable=
"false"
/>
<member
name=
"sample-link"
field=
"sample_link"
value-type=
"String"
length=
"64"
nullable=
"false"
/>
<member
name=
"transaction-date"
field=
"transaction_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"creation-date"
field=
"creation_date"
value-type=
"Date"
nullable=
"false"
/>
<member
name=
"duration-distribution"
field=
"duration_distribution"
value-type=
"String"
length=
"512"
nullable=
"false"
/>
<member
name=
"hits-over-time"
field=
"hits_over_time"
value-type=
"String"
length=
"512"
nullable=
"false"
/>
<member
name=
"duration-over-time"
field=
"duration_over_time"
value-type=
"String"
length=
"512"
nullable=
"false"
/>
<member
name=
"failure-over-time"
field=
"failure_over_time"
value-type=
"String"
length=
"512"
nullable=
"false"
/>
<var
name=
"key-id"
value-type=
"int"
key-member=
"id"
/>
<primary-key
name=
"PRIMARY"
members=
"id"
/>
<readsets>
<readset
name=
"FULL"
all=
"true"
/>
</readsets>
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
ba159e63
...
...
@@ -163,6 +163,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -181,6 +184,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -199,6 +205,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -217,6 +226,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -235,6 +247,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -253,6 +268,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -271,6 +289,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -289,6 +310,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -298,6 +322,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -307,6 +334,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -328,6 +358,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -346,6 +379,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -364,6 +400,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -382,6 +421,9 @@
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
...
...
@@ -1391,7 +1433,7 @@
<driver>
com.mysql.jdbc.Driver
</driver>
<url>
jdbc:mysql://127.0.0.1:3306/cat
</url>
<user>
root
</user>
<password></password>
<password>
password
</password>
<connectionProperties>
<![CDATA[useUnicode=true&autoReconnect=true]]>
</connectionProperties>
</properties>
</configuration>
...
...
@@ -1421,6 +1463,26 @@
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
report-content
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
report-content
</logical-table-name>
<physical-table-name>
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>
sqlreport
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
sqlreport
</logical-table-name>
<physical-table-name>
sqlreport
</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>
...
...
@@ -1449,6 +1511,24 @@
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.ReportContentDao
</role>
<implementation>
com.dianping.cat.home.dal.report.ReportContentDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.SqlreportDao
</role>
<implementation>
com.dianping.cat.home.dal.report.SqlreportDao
</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>
...
...
cat-home/src/main/resources/META-INF/wizard/jdbc/wizard.xml
浏览文件 @
ba159e63
...
...
@@ -12,6 +12,7 @@
<table
name=
"event"
/>
<table
name=
"topologyGraph"
/>
<table
name=
"baseline"
/>
<table
name=
"sqlreport"
/>
</group>
<group
name=
"alarm"
package=
"com.dianping.cat.home.dal.alarm"
>
<table
name=
"mailRecord"
/>
...
...
script/Cat.sql
浏览文件 @
ba159e63
...
...
@@ -86,17 +86,14 @@ CREATE TABLE `location` (
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
'报表来自于哪台机器'
,
`domain`
varchar
(
50
)
NOT
NULL
,
`period`
timestamp
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
COMMENT
'报表时间段'
,
`headers`
text
NOT
NULL
,
`domain`
varchar
(
50
)
NOT
NULL
COMMENT
'报表项目'
,
`period`
timestamp
NOT
NULL
COMMENT
'报表时间段'
,
`content`
longtext
NULL
,
`binary_content`
longblob
NULL
,
`creation_date`
timestamp
NOT
NULL
DEFAULT
'0000-00-00 00:00:00'
COMMENT
'报表创建时间'
,
PRIMARY
KEY
(
`id`
),
KEY
`IX_Domain_Name_Period`
(
`domain`
,
`name`
,
`period`
),
...
...
@@ -104,6 +101,12 @@ CREATE TABLE `report` (
KEY
`IX_Period`
(
`period`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
ROW_FORMAT
=
COMPRESSED
COMMENT
=
'用于存放实时报表信息,处理之后的结果'
;
CREATE
TABLE
`report_content`
(
`report_id`
int
(
11
)
NOT
NULL
COMMENT
'报表ID'
,
`content`
longblob
NOT
NULL
COMMENT
'二进制报表内容'
,
`creation_date`
timestamp
NOT
NULL
COMMENT
'创建时间'
,
PRIMARY
KEY
(
`report_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
ROW_FORMAT
=
COMPRESSED
COMMENT
=
'小时报表二进制内容'
;
CREATE
TABLE
`businessReport`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录