Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
5c4d5e1d
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 搜索 >>
提交
5c4d5e1d
编写于
5月 21, 2015
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor all report config merge
上级
50da4131
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
249 addition
and
80 deletion
+249
-80
cat-consumer/pom.xml
cat-consumer/pom.xml
+1
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
...m/dianping/cat/consumer/build/ComponentsConfigurator.java
+11
-11
cat-consumer/src/main/java/com/dianping/cat/consumer/config/AllReportConfigManager.java
.../dianping/cat/consumer/config/AllReportConfigManager.java
+35
-24
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventDelegate.java
...n/java/com/dianping/cat/consumer/event/EventDelegate.java
+35
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventReportTypeAggregator.java
...ianping/cat/consumer/event/EventReportTypeAggregator.java
+100
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionDelegate.java
...ianping/cat/consumer/transaction/TransactionDelegate.java
+2
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionReportTypeAggregator.java
...consumer/transaction/TransactionReportTypeAggregator.java
+6
-5
cat-consumer/src/main/resources/META-INF/dal/model/all-report-codegen.xml
.../main/resources/META-INF/dal/model/all-report-codegen.xml
+0
-0
cat-consumer/src/main/resources/META-INF/dal/model/all-report-manifest.xml
...main/resources/META-INF/dal/model/all-report-manifest.xml
+6
-0
cat-consumer/src/main/resources/META-INF/dal/model/all-report-model.xml
...rc/main/resources/META-INF/dal/model/all-report-model.xml
+6
-2
cat-consumer/src/main/resources/META-INF/plexus/components.xml
...onsumer/src/main/resources/META-INF/plexus/components.xml
+6
-3
cat-consumer/src/test/java/com/dianping/cat/consumer/transaction/TransactionReportTypeAggergatorTest.java
...umer/transaction/TransactionReportTypeAggergatorTest.java
+4
-3
cat-core/src/main/java/com/dianping/cat/config/app/command/DefaultCommandFormatlHandler.java
.../cat/config/app/command/DefaultCommandFormatlHandler.java
+1
-3
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+2
-2
cat-home/src/main/java/com/dianping/cat/report/page/ConfigReloadTask.java
...n/java/com/dianping/cat/report/page/ConfigReloadTask.java
+2
-2
cat-home/src/main/java/com/dianping/cat/system/page/config/Action.java
...main/java/com/dianping/cat/system/page/config/Action.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java
...ain/java/com/dianping/cat/system/page/config/Handler.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/config/JspFile.java
...ain/java/com/dianping/cat/system/page/config/JspFile.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/config/JspViewer.java
...n/java/com/dianping/cat/system/page/config/JspViewer.java
+2
-2
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/GlobalConfigProcessor.java
...t/system/page/config/processor/GlobalConfigProcessor.java
+3
-3
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+4
-4
cat-home/src/main/resources/config/all-report-config.xml
cat-home/src/main/resources/config/all-report-config.xml
+15
-0
cat-home/src/main/resources/config/all-transaction-config.xml
...home/src/main/resources/config/all-transaction-config.xml
+0
-5
cat-home/src/main/webapp/WEB-INF/tags/config.tag
cat-home/src/main/webapp/WEB-INF/tags/config.tag
+2
-2
cat-home/src/main/webapp/jsp/system/transactionRule/allReportConfig.jsp
...ain/webapp/jsp/system/transactionRule/allReportConfig.jsp
+3
-3
未找到文件。
cat-consumer/pom.xml
浏览文件 @
5c4d5e1d
...
...
@@ -49,7 +49,7 @@
</goals>
<configuration>
<manifest>
${basedir}/src/main/resources/META-INF/dal/model/transaction-report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/all-
transaction-
report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/all-report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/event-report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/problem-report-manifest.xml,
${basedir}/src/main/resources/META-INF/dal/model/heartbeat-report-manifest.xml,
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java
浏览文件 @
5c4d5e1d
...
...
@@ -15,6 +15,7 @@ import com.dianping.cat.config.content.DefaultContentFetcher;
import
com.dianping.cat.config.server.ServerConfigManager
;
import
com.dianping.cat.config.server.ServerFilterConfigManager
;
import
com.dianping.cat.consumer.CatConsumerModule
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.config.ProductLineConfigManager
;
import
com.dianping.cat.consumer.cross.CrossAnalyzer
;
import
com.dianping.cat.consumer.cross.CrossDelegate
;
...
...
@@ -45,7 +46,6 @@ import com.dianping.cat.consumer.storage.StorageDelegate;
import
com.dianping.cat.consumer.storage.StorageReportUpdater
;
import
com.dianping.cat.consumer.top.TopAnalyzer
;
import
com.dianping.cat.consumer.top.TopDelegate
;
import
com.dianping.cat.consumer.transaction.AllTransactionConfigManager
;
import
com.dianping.cat.consumer.transaction.TransactionAnalyzer
;
import
com.dianping.cat.consumer.transaction.TransactionDelegate
;
import
com.dianping.cat.core.config.ConfigDao
;
...
...
@@ -86,7 +86,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
addAll
(
defineMetricComponents
());
all
.
addAll
(
defineStorageComponents
());
all
.
add
(
C
(
All
Transaction
ConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
All
Report
ConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
Module
.
class
,
CatConsumerModule
.
ID
,
CatConsumerModule
.
class
));
all
.
addAll
(
new
CatDatabaseConfigurator
().
defineComponents
());
return
all
;
...
...
@@ -147,7 +147,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
ReportBucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
,
DomainValidator
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
EventDelegate
.
class
).
req
(
TaskManager
.
class
,
ServerFilterConfigManager
.
class
));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
EventDelegate
.
class
).
req
(
TaskManager
.
class
,
ServerFilterConfigManager
.
class
,
AllReportConfigManager
.
class
));
return
all
;
}
...
...
@@ -241,8 +242,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
final
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
final
String
ID
=
TopAnalyzer
.
ID
;
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
TopAnalyzer
.
class
).
is
(
PER_LOOKUP
)
.
req
(
ReportManager
.
class
,
ID
).
req
(
ServerConfigManager
.
class
,
ServerFilterConfigManager
.
class
)
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
TopAnalyzer
.
class
).
is
(
PER_LOOKUP
)
.
req
(
ReportManager
.
class
,
ID
)
.
req
(
ServerConfigManager
.
class
,
ServerFilterConfigManager
.
class
)
.
config
(
E
(
"errorType"
).
value
(
"Error,RuntimeException,Exception"
)));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
).
is
(
PER_LOOKUP
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
...
...
@@ -257,15 +258,14 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
final
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
final
String
ID
=
TransactionAnalyzer
.
ID
;
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
TransactionAnalyzer
.
class
).
is
(
PER_LOOKUP
)
.
req
(
ReportManager
.
class
,
ID
).
req
(
ReportDelegate
.
class
,
ID
)
.
req
(
ServerConfigManager
.
class
,
ServerFilterConfigManager
.
class
));
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
TransactionAnalyzer
.
class
).
is
(
PER_LOOKUP
).
req
(
ReportManager
.
class
,
ID
)
.
req
(
ReportDelegate
.
class
,
ID
).
req
(
ServerConfigManager
.
class
,
ServerFilterConfigManager
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
).
is
(
PER_LOOKUP
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
.
req
(
ReportBucketManager
.
class
,
HourlyReportDao
.
class
,
HourlyReportContentDao
.
class
,
DomainValidator
.
class
)
//
.
config
(
E
(
"name"
).
value
(
ID
)));
all
.
add
(
C
(
ReportDelegate
.
class
,
ID
,
TransactionDelegate
.
class
).
req
(
TaskManager
.
class
,
ServerFilterConfigManager
.
class
,
All
Transaction
ConfigManager
.
class
));
ServerFilterConfigManager
.
class
,
All
Report
ConfigManager
.
class
));
return
all
;
}
...
...
@@ -275,8 +275,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
final
String
ID
=
StorageAnalyzer
.
ID
;
all
.
add
(
C
(
com
.
dianping
.
cat
.
consumer
.
storage
.
DatabaseParser
.
class
));
all
.
add
(
C
(
StorageReportUpdater
.
class
));
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
StorageAnalyzer
.
class
).
is
(
PER_LOOKUP
)
.
req
(
Report
Manager
.
class
,
ID
).
req
(
Report
Delegate
.
class
,
ID
).
req
(
ServerConfigManager
.
class
)
all
.
add
(
C
(
MessageAnalyzer
.
class
,
ID
,
StorageAnalyzer
.
class
).
is
(
PER_LOOKUP
)
.
req
(
ReportManager
.
class
,
ID
)
.
req
(
ReportDelegate
.
class
,
ID
).
req
(
ServerConfigManager
.
class
)
.
req
(
com
.
dianping
.
cat
.
consumer
.
storage
.
DatabaseParser
.
class
).
req
(
StorageReportUpdater
.
class
));
all
.
add
(
C
(
ReportManager
.
class
,
ID
,
DefaultReportManager
.
class
).
is
(
PER_LOOKUP
)
//
.
req
(
ReportDelegate
.
class
,
ID
)
//
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/
transaction/AllTransaction
ConfigManager.java
→
cat-consumer/src/main/java/com/dianping/cat/consumer/
config/AllReport
ConfigManager.java
浏览文件 @
5c4d5e1d
package
com.dianping.cat.consumer.
transaction
;
package
com.dianping.cat.consumer.
config
;
import
java.io.IOException
;
import
java.util.Date
;
...
...
@@ -16,15 +16,16 @@ import org.xml.sax.SAXException;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.config.content.ContentFetcher
;
import
com.dianping.cat.consumer.transaction.config.entity.AllTransactionConfig
;
import
com.dianping.cat.consumer.transaction.config.entity.Name
;
import
com.dianping.cat.consumer.transaction.config.entity.Type
;
import
com.dianping.cat.consumer.transaction.config.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.all.config.entity.AllConfig
;
import
com.dianping.cat.consumer.all.config.entity.Name
;
import
com.dianping.cat.consumer.all.config.entity.Report
;
import
com.dianping.cat.consumer.all.config.entity.Type
;
import
com.dianping.cat.consumer.all.config.transform.DefaultSaxParser
;
import
com.dianping.cat.core.config.Config
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.config.ConfigEntity
;
public
class
All
Transaction
ConfigManager
implements
Initializable
,
LogEnabled
{
public
class
All
Report
ConfigManager
implements
Initializable
,
LogEnabled
{
@Inject
private
ConfigDao
m_configDao
;
...
...
@@ -34,20 +35,20 @@ public class AllTransactionConfigManager implements Initializable, LogEnabled {
private
int
m_configId
;
private
volatile
All
Transaction
Config
m_config
;
private
volatile
AllConfig
m_config
;
private
Logger
m_logger
;
private
long
m_modifyTime
;
private
static
final
String
CONFIG_NAME
=
"all-
transaction
-config"
;
private
static
final
String
CONFIG_NAME
=
"all-
report
-config"
;
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
}
public
All
Transaction
Config
getConfig
()
{
public
AllConfig
getConfig
()
{
return
m_config
;
}
...
...
@@ -81,7 +82,7 @@ public class AllTransactionConfigManager implements Initializable, LogEnabled {
Cat
.
logError
(
e
);
}
if
(
m_config
==
null
)
{
m_config
=
new
All
Transaction
Config
();
m_config
=
new
AllConfig
();
}
}
...
...
@@ -105,7 +106,7 @@ public class AllTransactionConfigManager implements Initializable, LogEnabled {
synchronized
(
this
)
{
if
(
modifyTime
>
m_modifyTime
)
{
String
content
=
config
.
getContent
();
All
Transaction
Config
blackList
=
DefaultSaxParser
.
parse
(
content
);
AllConfig
blackList
=
DefaultSaxParser
.
parse
(
content
);
m_config
=
blackList
;
m_modifyTime
=
modifyTime
;
...
...
@@ -131,24 +132,34 @@ public class AllTransactionConfigManager implements Initializable, LogEnabled {
return
true
;
}
public
boolean
validate
(
String
type
)
{
Map
<
String
,
Type
>
types
=
m_config
.
getTypes
();
return
types
.
containsKey
(
type
)
||
types
.
containsKey
(
"*"
);
public
boolean
validate
(
String
reportName
,
String
type
)
{
Report
report
=
m_config
.
getReports
().
get
(
reportName
);
if
(
report
!=
null
)
{
Map
<
String
,
Type
>
types
=
report
.
getTypes
();
return
types
.
containsKey
(
type
)
||
types
.
containsKey
(
"*"
);
}
else
{
return
false
;
}
}
public
boolean
validate
(
String
type
,
String
name
)
{
Map
<
String
,
Type
>
types
=
m_config
.
getTypes
();
Type
typeConfig
=
types
.
get
(
type
);
public
boolean
validate
(
String
reportName
,
String
type
,
String
name
)
{
Report
report
=
m_config
.
getReports
().
get
(
reportName
);
if
(
report
!=
null
)
{
Map
<
String
,
Type
>
types
=
report
.
getTypes
();
Type
typeConfig
=
types
.
get
(
type
);
if
(
typeConfig
!=
null
)
{
List
<
Name
>
list
=
typeConfig
.
getNameList
();
if
(
typeConfig
!=
null
)
{
List
<
Name
>
list
=
typeConfig
.
getNameList
();
for
(
Name
nameConfig
:
list
)
{
String
configId
=
nameConfig
.
getId
();
for
(
Name
nameConfig
:
list
)
{
String
configId
=
nameConfig
.
getId
();
if
(
configId
.
equals
(
name
)
||
"*"
.
equals
(
configId
))
{
return
true
;
if
(
configId
.
equals
(
name
)
||
"*"
.
equals
(
configId
))
{
return
true
;
}
}
}
}
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventDelegate.java
浏览文件 @
5c4d5e1d
...
...
@@ -6,7 +6,10 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.config.server.ServerFilterConfigManager
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
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
;
...
...
@@ -23,6 +26,9 @@ public class EventDelegate implements ReportDelegate<EventReport> {
@Inject
private
ServerFilterConfigManager
m_configManager
;
@Inject
private
AllReportConfigManager
m_allManager
;
private
EventTpsStatisticsComputer
m_computer
=
new
EventTpsStatisticsComputer
();
@Override
...
...
@@ -37,6 +43,11 @@ public class EventDelegate implements ReportDelegate<EventReport> {
domainNames
.
clear
();
domainNames
.
addAll
(
reports
.
keySet
());
}
if
(
reports
.
size
()
>
0
)
{
EventReport
all
=
createAggregatedReport
(
reports
);
reports
.
put
(
all
.
getDomain
(),
all
);
}
}
@Override
...
...
@@ -57,13 +68,36 @@ public class EventDelegate implements ReportDelegate<EventReport> {
public
boolean
createHourlyTask
(
EventReport
report
)
{
String
domain
=
report
.
getDomain
();
if
(
m_configManager
.
validateDomain
(
domain
))
{
if
(
domain
.
equals
(
Constants
.
ALL
))
{
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
domain
,
EventAnalyzer
.
ID
,
TaskProlicy
.
ALL_EXCLUED_HOURLY
);
}
else
if
(
m_configManager
.
validateDomain
(
domain
))
{
return
m_taskManager
.
createTask
(
report
.
getStartTime
(),
report
.
getDomain
(),
EventAnalyzer
.
ID
,
TaskProlicy
.
ALL
);
}
else
{
return
true
;
}
}
public
EventReport
createAggregatedReport
(
Map
<
String
,
EventReport
>
reports
)
{
EventReport
first
=
reports
.
values
().
iterator
().
next
();
EventReport
all
=
makeReport
(
Constants
.
ALL
,
first
.
getStartTime
().
getTime
(),
Constants
.
HOUR
);
EventReportTypeAggregator
visitor
=
new
EventReportTypeAggregator
(
all
,
m_allManager
);
try
{
for
(
EventReport
report
:
reports
.
values
())
{
String
domain
=
report
.
getDomain
();
all
.
getIps
().
add
(
domain
);
all
.
getDomainNames
().
add
(
domain
);
visitor
.
visitEventReport
(
report
);
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
return
all
;
}
@Override
public
String
getDomain
(
EventReport
report
)
{
return
report
.
getDomain
();
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventReportTypeAggregator.java
0 → 100644
浏览文件 @
5c4d5e1d
package
com.dianping.cat.consumer.event
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.event.model.entity.EventName
;
import
com.dianping.cat.consumer.event.model.entity.EventReport
;
import
com.dianping.cat.consumer.event.model.entity.EventType
;
import
com.dianping.cat.consumer.event.model.entity.Machine
;
import
com.dianping.cat.consumer.event.model.transform.BaseVisitor
;
public
class
EventReportTypeAggregator
extends
BaseVisitor
{
private
EventReport
m_report
;
public
String
m_currentDomain
;
private
String
m_currentType
;
private
AllReportConfigManager
m_configManager
;
public
EventReportTypeAggregator
(
EventReport
report
,
AllReportConfigManager
configManager
)
{
m_report
=
report
;
m_configManager
=
configManager
;
}
private
void
mergeName
(
EventName
old
,
EventName
other
)
{
long
totalCountSum
=
old
.
getTotalCount
()
+
other
.
getTotalCount
();
old
.
setTotalCount
(
totalCountSum
);
old
.
setFailCount
(
old
.
getFailCount
()
+
other
.
getFailCount
());
if
(
old
.
getTotalCount
()
>
0
)
{
old
.
setFailPercent
(
old
.
getFailCount
()
*
100.0
/
old
.
getTotalCount
());
}
if
(
old
.
getSuccessMessageUrl
()
==
null
)
{
old
.
setSuccessMessageUrl
(
other
.
getSuccessMessageUrl
());
}
if
(
old
.
getFailMessageUrl
()
==
null
)
{
old
.
setFailMessageUrl
(
other
.
getFailMessageUrl
());
}
}
private
void
mergeType
(
EventType
old
,
EventType
other
)
{
long
totalCountSum
=
old
.
getTotalCount
()
+
other
.
getTotalCount
();
old
.
setTotalCount
(
totalCountSum
);
old
.
setFailCount
(
old
.
getFailCount
()
+
other
.
getFailCount
());
if
(
old
.
getTotalCount
()
>
0
)
{
old
.
setFailPercent
(
old
.
getFailCount
()
*
100.0
/
old
.
getTotalCount
());
}
if
(
old
.
getSuccessMessageUrl
()
==
null
)
{
old
.
setSuccessMessageUrl
(
other
.
getSuccessMessageUrl
());
}
if
(
old
.
getFailMessageUrl
()
==
null
)
{
old
.
setFailMessageUrl
(
other
.
getFailMessageUrl
());
}
}
private
boolean
validateName
(
String
type
,
String
name
)
{
return
m_configManager
.
validate
(
EventAnalyzer
.
ID
,
type
,
name
);
}
private
boolean
validateType
(
String
type
)
{
return
m_configManager
.
validate
(
EventAnalyzer
.
ID
,
type
);
}
@Override
public
void
visitName
(
EventName
name
)
{
if
(
validateName
(
m_currentType
,
name
.
getId
()))
{
Machine
machine
=
m_report
.
findOrCreateMachine
(
m_currentDomain
);
EventType
curentType
=
machine
.
findOrCreateType
(
m_currentType
);
EventName
currentName
=
curentType
.
findOrCreateName
(
name
.
getId
());
mergeName
(
currentName
,
name
);
}
}
@Override
public
void
visitEventReport
(
EventReport
eventReport
)
{
m_currentDomain
=
eventReport
.
getDomain
();
m_report
.
setStartTime
(
eventReport
.
getStartTime
());
m_report
.
setEndTime
(
eventReport
.
getEndTime
());
super
.
visitEventReport
(
eventReport
);
}
@Override
public
void
visitType
(
EventType
type
)
{
String
typeName
=
type
.
getId
();
if
(
validateType
(
typeName
))
{
Machine
machine
=
m_report
.
findOrCreateMachine
(
m_currentDomain
);
EventType
result
=
machine
.
findOrCreateType
(
typeName
);
m_currentType
=
typeName
;
mergeType
(
result
,
type
);
super
.
visitType
(
type
);
}
}
}
\ No newline at end of file
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionDelegate.java
浏览文件 @
5c4d5e1d
...
...
@@ -11,6 +11,7 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.config.server.ServerFilterConfigManager
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
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
;
...
...
@@ -28,7 +29,7 @@ public class TransactionDelegate implements ReportDelegate<TransactionReport> {
private
ServerFilterConfigManager
m_configManager
;
@Inject
private
All
Transaction
ConfigManager
m_transactionManager
;
private
All
Report
ConfigManager
m_transactionManager
;
private
TransactionStatisticsComputer
m_computer
=
new
TransactionStatisticsComputer
();
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionReportTypeAggregator.java
浏览文件 @
5c4d5e1d
package
com.dianping.cat.consumer.transaction
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.transaction.model.entity.Machine
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionName
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
...
...
@@ -14,9 +15,9 @@ public class TransactionReportTypeAggregator extends BaseVisitor {
private
String
m_currentType
;
private
All
Transaction
ConfigManager
m_configManager
;
private
All
Report
ConfigManager
m_configManager
;
public
TransactionReportTypeAggregator
(
TransactionReport
report
,
All
Transaction
ConfigManager
configManager
)
{
public
TransactionReportTypeAggregator
(
TransactionReport
report
,
All
Report
ConfigManager
configManager
)
{
m_report
=
report
;
m_configManager
=
configManager
;
}
...
...
@@ -88,11 +89,11 @@ public class TransactionReportTypeAggregator extends BaseVisitor {
}
private
boolean
validateName
(
String
type
,
String
name
)
{
return
m_configManager
.
validate
(
type
,
name
);
return
m_configManager
.
validate
(
TransactionAnalyzer
.
ID
,
type
,
name
);
}
private
boolean
validateType
(
String
type
)
{
return
m_configManager
.
validate
(
type
);
return
m_configManager
.
validate
(
TransactionAnalyzer
.
ID
,
type
);
}
@Override
...
...
@@ -117,7 +118,7 @@ public class TransactionReportTypeAggregator extends BaseVisitor {
@Override
public
void
visitType
(
TransactionType
type
)
{
String
typeName
=
type
.
getId
();
if
(
validateType
(
typeName
))
{
Machine
machine
=
m_report
.
findOrCreateMachine
(
m_currentDomain
);
TransactionType
result
=
machine
.
findOrCreateType
(
typeName
);
...
...
cat-consumer/src/main/resources/META-INF/dal/model/all-
transaction-
report-codegen.xml
→
cat-consumer/src/main/resources/META-INF/dal/model/all-report-codegen.xml
浏览文件 @
5c4d5e1d
文件已移动
cat-consumer/src/main/resources/META-INF/dal/model/all-
transaction-
report-manifest.xml
→
cat-consumer/src/main/resources/META-INF/dal/model/all-report-manifest.xml
浏览文件 @
5c4d5e1d
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<file
path=
"all-
transaction-
report-codegen.xml"
/>
<file
path=
"all-
transaction-
report-model.xml"
/>
<file
path=
"all-report-codegen.xml"
/>
<file
path=
"all-report-model.xml"
/>
</manifest>
cat-consumer/src/main/resources/META-INF/dal/model/all-
transaction-
report-model.xml
→
cat-consumer/src/main/resources/META-INF/dal/model/all-report-model.xml
浏览文件 @
5c4d5e1d
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.consumer.
transaction
.config"
enable-merger=
"true"
enable-sax-parser=
"true"
<model
model-package=
"com.dianping.cat.consumer.
all
.config"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
<entity
name=
"all-transaction-config"
root=
"true"
>
<entity
name=
"all-config"
root=
"true"
>
<entity-ref
name=
"report"
type=
"map"
names=
"reports"
method-find-or-create=
"true"
/>
</entity>
<entity
name=
"report"
>
<attribute
name=
"id"
value-type=
"String"
key=
"true"
/>
<entity-ref
name=
"type"
type=
"map"
names=
"types"
method-find-or-create=
"true"
/>
</entity>
<entity
name=
"type"
>
...
...
cat-consumer/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
5c4d5e1d
...
...
@@ -61,7 +61,7 @@
<role>
com.dianping.cat.config.server.ServerFilterConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</role>
<role>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</role>
</requirement>
</requirements>
</component>
...
...
@@ -121,6 +121,9 @@
<requirement>
<role>
com.dianping.cat.config.server.ServerFilterConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.config.AllReportConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -750,8 +753,8 @@
</configuration>
</component>
<component>
<role>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</role>
<implementation>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</implementation>
<role>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</role>
<implementation>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
...
...
cat-consumer/src/test/java/com/dianping/cat/consumer/transaction/TransactionReportTypeAggergatorTest.java
浏览文件 @
5c4d5e1d
...
...
@@ -5,6 +5,7 @@ import junit.framework.Assert;
import
org.junit.Test
;
import
org.unidal.helper.Files
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser
;
...
...
@@ -35,15 +36,15 @@ public class TransactionReportTypeAggergatorTest {
return
DefaultSaxParser
.
parse
(
source
);
}
public
static
class
ExtendAllTransactionConfigManager
extends
All
Transaction
ConfigManager
{
public
static
class
ExtendAllTransactionConfigManager
extends
All
Report
ConfigManager
{
@Override
public
boolean
validate
(
String
type
)
{
public
boolean
validate
(
String
report
,
String
type
)
{
return
true
;
}
@Override
public
boolean
validate
(
String
type
,
String
name
)
{
public
boolean
validate
(
String
report
,
String
type
,
String
name
)
{
return
true
;
}
}
...
...
cat-core/src/main/java/com/dianping/cat/config/app/command/DefaultCommandFormatlHandler.java
浏览文件 @
5c4d5e1d
...
...
@@ -162,11 +162,9 @@ public class DefaultCommandFormatlHandler implements CommandFormatHandler, LogEn
@Override
public
void
register
(
List
<
Rule
>
rules
)
{
System
.
out
.
println
(
"start register"
);
m_formats
.
clear
();
for
(
Rule
rule
:
rules
)
{
System
.
out
.
println
(
"---"
+
rule
.
getPattern
()+
"----"
);
String
format
=
rule
.
getPattern
();
if
(
format
==
null
||
format
.
isEmpty
())
{
...
...
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
5c4d5e1d
...
...
@@ -24,11 +24,11 @@ import com.dianping.cat.config.content.DefaultContentFetcher;
import
com.dianping.cat.config.server.BlackListManager
;
import
com.dianping.cat.config.server.ServerConfigManager
;
import
com.dianping.cat.config.server.ServerFilterConfigManager
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.config.ProductLineConfigManager
;
import
com.dianping.cat.consumer.dependency.DependencyAnalyzer
;
import
com.dianping.cat.consumer.metric.MetricAnalyzer
;
import
com.dianping.cat.consumer.metric.MetricConfigManager
;
import
com.dianping.cat.consumer.transaction.AllTransactionConfigManager
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.helper.JsonBuilder
;
import
com.dianping.cat.home.dal.report.AlertDao
;
...
...
@@ -205,7 +205,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
SenderConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
ActivityConfigManager
.
class
).
req
(
ConfigDao
.
class
,
ContentFetcher
.
class
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
RouterConfigManager
.
class
,
BlackListManager
.
class
,
All
Transaction
ConfigManager
.
class
));
RouterConfigManager
.
class
,
BlackListManager
.
class
,
All
Report
ConfigManager
.
class
));
return
all
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/ConfigReloadTask.java
浏览文件 @
5c4d5e1d
...
...
@@ -5,9 +5,9 @@ import org.unidal.lookup.annotation.Inject;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.config.server.BlackListManager
;
import
com.dianping.cat.consumer.config.AllReportConfigManager
;
import
com.dianping.cat.consumer.config.ProductLineConfigManager
;
import
com.dianping.cat.consumer.metric.MetricConfigManager
;
import
com.dianping.cat.consumer.transaction.AllTransactionConfigManager
;
import
com.dianping.cat.system.page.router.config.RouterConfigManager
;
public
class
ConfigReloadTask
implements
Task
{
...
...
@@ -25,7 +25,7 @@ public class ConfigReloadTask implements Task {
private
BlackListManager
m_blackListManager
;
@Inject
private
All
Transaction
ConfigManager
m_allTransactionConfigManager
;
private
All
Report
ConfigManager
m_allTransactionConfigManager
;
@Override
public
String
getName
()
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/Action.java
浏览文件 @
5c4d5e1d
...
...
@@ -221,7 +221,7 @@ public enum Action implements org.unidal.web.mvc.Action {
SERVER_FILTER_CONFIG_UPDATE
(
"serverFilterConfigUpdate"
),
TRANSACTION_ALL_CONFIG
(
"transactionAll
Config"
),
ALL_REPORT_CONFIG
(
"allReport
Config"
),
BLACK_CONFIG_UPDATE
(
"blackConfigUpdate"
);
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/Handler.java
浏览文件 @
5c4d5e1d
...
...
@@ -121,7 +121,7 @@ public class Handler implements PageHandler<Context> {
case
BLACK_CONFIG_UPDATE:
case
STORAGE_GROUP_CONFIG_UPDATE:
case
SERVER_FILTER_CONFIG_UPDATE:
case
TRANSACTION_ALL
_CONFIG:
case
ALL_REPORT
_CONFIG:
m_globalConfigProcessor
.
process
(
action
,
payload
,
model
);
break
;
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/JspFile.java
浏览文件 @
5c4d5e1d
...
...
@@ -145,7 +145,7 @@ public enum JspFile {
BLACK_CONFIG_UPDATE
(
"/jsp/system/black/blackConfigUpdate.jsp"
),
TRANSACTION_ALL_CONFIG
(
"/jsp/system/transactionRule/transaction
Config.jsp"
);
ALL_REPORT_CONFIG
(
"/jsp/system/transactionRule/allReport
Config.jsp"
);
private
String
m_path
;
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/JspViewer.java
浏览文件 @
5c4d5e1d
...
...
@@ -212,8 +212,8 @@ public class JspViewer extends BaseJspViewer<SystemPage, Action, Context, Model>
return
JspFile
.
SERVER_FILTER_CONFIG_UPDATE
.
getPath
();
case
BLACK_CONFIG_UPDATE:
return
JspFile
.
BLACK_CONFIG_UPDATE
.
getPath
();
case
TRANSACTION_ALL
_CONFIG:
return
JspFile
.
TRANSACTION_ALL
_CONFIG
.
getPath
();
case
ALL_REPORT
_CONFIG:
return
JspFile
.
ALL_REPORT
_CONFIG
.
getPath
();
}
throw
new
RuntimeException
(
"Unknown action: "
+
action
);
...
...
cat-home/src/main/java/com/dianping/cat/system/page/config/processor/GlobalConfigProcessor.java
浏览文件 @
5c4d5e1d
...
...
@@ -12,7 +12,7 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.config.server.BlackListManager
;
import
com.dianping.cat.config.server.ServerFilterConfigManager
;
import
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
;
import
com.dianping.cat.consumer.
config.AllReport
ConfigManager
;
import
com.dianping.cat.core.dal.Project
;
import
com.dianping.cat.home.group.entity.Domain
;
import
com.dianping.cat.report.alert.sender.config.SenderConfigManager
;
...
...
@@ -52,7 +52,7 @@ public class GlobalConfigProcessor {
private
ServerFilterConfigManager
m_serverFilterConfigManager
;
@Inject
private
All
Transaction
ConfigManager
m_transactionConfigManager
;
private
All
Report
ConfigManager
m_transactionConfigManager
;
private
boolean
deleteProject
(
Payload
payload
)
{
Project
proto
=
new
Project
();
...
...
@@ -162,7 +162,7 @@ public class GlobalConfigProcessor {
}
model
.
setContent
(
m_serverFilterConfigManager
.
getConfig
().
toString
());
break
;
case
TRANSACTION_ALL
_CONFIG:
case
ALL_REPORT
_CONFIG:
String
transactionConfig
=
payload
.
getContent
();
if
(!
StringUtils
.
isEmpty
(
transactionConfig
))
{
model
.
setOpState
(
m_transactionConfigManager
.
insert
(
transactionConfig
));
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
5c4d5e1d
...
...
@@ -442,7 +442,7 @@
<role>
com.dianping.cat.config.server.BlackListManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</role>
<role>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</role>
</requirement>
</requirements>
</component>
...
...
@@ -6039,7 +6039,7 @@
<role>
com.dianping.cat.config.server.ServerFilterConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</role>
<role>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</role>
</requirement>
</requirements>
</component>
...
...
@@ -6056,8 +6056,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</role>
<implementation>
com.dianping.cat.consumer.
transaction.AllTransaction
ConfigManager
</implementation>
<role>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</role>
<implementation>
com.dianping.cat.consumer.
config.AllReport
ConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
...
...
cat-home/src/main/resources/config/all-report-config.xml
0 → 100644
浏览文件 @
5c4d5e1d
<all-config>
<report
id=
"transaction"
>
<type
id=
"URL"
>
<name
id=
"*"
></name>
</type>
</report>
<report
id=
"event"
>
<type
id=
"URL"
>
<name
id=
"*"
></name>
</type>
<type
id=
"SQL"
>
<name
id=
"*"
></name>
</type>
</report>
</all-config>
\ No newline at end of file
cat-home/src/main/resources/config/all-transaction-config.xml
已删除
100644 → 0
浏览文件 @
50da4131
<all-transaction-config>
<type
id=
"URL"
>
<name
id=
"*"
></name>
</type>
</all-transaction-config>
\ No newline at end of file
cat-home/src/main/webapp/WEB-INF/tags/config.tag
浏览文件 @
5c4d5e1d
...
...
@@ -96,8 +96,8 @@
<li id="transactionRule"><a href="/cat/s/config?op=transactionRule">
<i class="menu-icon fa fa-caret-right"></i>Transaction告警</a>
<b class="arrow"></b></li>
<li id="
transactionAllConfig"><a href="/cat/s/config?op=transactionAll
Config">
<i class="menu-icon fa fa-caret-right"></i>
Transaction合并
</a>
<li id="
allReportConfig"><a href="/cat/s/config?op=allReport
Config">
<i class="menu-icon fa fa-caret-right"></i>
报表合并配置
</a>
<b class="arrow"></b></li>
<li id="exception"><a href="/cat/s/config?op=exception">
<i class="menu-icon fa fa-caret-right"></i>异常告警配置</a>
...
...
cat-home/src/main/webapp/jsp/system/transactionRule/
transaction
Config.jsp
→
cat-home/src/main/webapp/jsp/system/transactionRule/
allReport
Config.jsp
浏览文件 @
5c4d5e1d
...
...
@@ -12,9 +12,9 @@
<res:useJs
value=
"
${
res
.
js
.
local
[
'alarm_js'
]
}
"
target=
"head-js"
/>
<res:useCss
value=
"
${
res
.
css
.
local
[
'select2.css'
]
}
"
target=
"head-css"
/>
<res:useJs
value=
"
${
res
.
js
.
local
[
'select2.min.js'
]
}
"
target=
"head-js"
/>
<h4
class=
"text-center text-danger"
>
Transaction All Report
合并
</h4>
<h4
class=
"text-center text-danger"
>
Report All
合并
</h4>
<form
name=
"transactionAllConfig"
id=
"form"
method=
"post"
action=
"${model.pageUri}?op=
transactionAll
Config"
>
action=
"${model.pageUri}?op=
allReport
Config"
>
<table
class=
"table table-striped table-condensed table-hover"
>
<tr>
<td><textarea
name=
"content"
style=
"width:100%"
rows=
"20"
cols=
"150"
>
${model.content}
</textarea></td>
...
...
@@ -30,7 +30,7 @@
<script
type=
"text/javascript"
>
$
(
document
).
ready
(
function
()
{
$
(
'
#application_config
'
).
addClass
(
'
active open
'
);
$
(
'
#
transactionAll
Config
'
).
addClass
(
'
active
'
);
$
(
'
#
allReport
Config
'
).
addClass
(
'
active
'
);
var
state
=
'
${model.opState}
'
;
if
(
state
==
'
Success
'
){
$
(
'
#state
'
).
html
(
'
操作成功
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录