Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
33560f1b
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,发现更多精彩内容 >>
提交
33560f1b
编写于
7月 24, 2014
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the config
上级
c9154779
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
275 addition
and
3840 deletion
+275
-3840
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+4
-69
cat-home/src/main/java/com/dianping/cat/report/task/router/RouterBuilder.java
...va/com/dianping/cat/report/task/router/RouterBuilder.java
+84
-0
cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java
...n/java/com/dianping/cat/report/task/spi/ReportFacade.java
+0
-2
cat-home/src/main/java/com/dianping/cat/system/config/RouterConfigManager.java
...a/com/dianping/cat/system/config/RouterConfigManager.java
+108
-0
cat-home/src/main/resources/META-INF/dal/model/router-codegen.xml
.../src/main/resources/META-INF/dal/model/router-codegen.xml
+7
-0
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+66
-3766
cat-home/src/test/resources/config/router-config.xml
cat-home/src/test/resources/config/router-config.xml
+6
-3
未找到文件。
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
33560f1b
...
...
@@ -69,7 +69,6 @@ import com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig;
import
com.dianping.cat.report.task.alert.manager.AlertManager
;
import
com.dianping.cat.report.task.alert.network.NetworkAlert
;
import
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
;
import
com.dianping.cat.report.task.alert.sender.ExceptionPostman
;
import
com.dianping.cat.report.task.alert.sender.MailSender
;
import
com.dianping.cat.report.task.alert.sender.Postman
;
import
com.dianping.cat.report.task.alert.sender.SmsSender
;
...
...
@@ -97,6 +96,7 @@ import com.dianping.cat.system.config.ExceptionConfigManager;
import
com.dianping.cat.system.config.MetricGroupConfigManager
;
import
com.dianping.cat.system.config.NetGraphConfigManager
;
import
com.dianping.cat.system.config.NetworkRuleConfigManager
;
import
com.dianping.cat.system.config.RouterConfigManager
;
import
com.dianping.cat.system.config.SystemRuleConfigManager
;
import
com.dianping.cat.system.config.ThirdPartyConfigManager
;
import
com.dianping.cat.system.tool.DefaultMailImpl
;
...
...
@@ -233,6 +233,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AlertConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
NetGraphConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
ThirdPartyConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
RouterConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
));
return
all
;
...
...
@@ -266,29 +267,9 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AppGraphCreator
.
class
).
req
(
AppDataService
.
class
,
CachedMetricReportService
.
class
,
DataExtractor
.
class
,
MetricDataFetcher
.
class
).
req
(
BaselineService
.
class
,
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
MetricGroupConfigManager
.
class
,
AlertInfo
.
class
));
// report serivce
all
.
addAll
(
new
ReportServiceComponentConfigurator
().
defineComponents
());
// task
all
.
addAll
(
new
TaskComponentConfigurator
().
defineComponents
());
// model service
all
.
addAll
(
new
ServiceComponentConfigurator
().
defineComponents
());
all
.
add
(
C
(
RemoteMetricReportService
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
BusinessAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
NetworkAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
SystemAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
ExceptionAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
AlertInfo
.
class
));
all
.
add
(
C
(
DefaultMailImpl
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
DataChecker
.
class
,
DefaultDataChecker
.
class
));
all
.
add
(
C
(
NetGraphManager
.
class
).
req
(
ServerConfigManager
.
class
,
RemoteMetricReportService
.
class
).
req
(
ReportService
.
class
,
NetGraphBuilder
.
class
,
AlertInfo
.
class
,
NetGraphConfigManager
.
class
));
all
.
add
(
C
(
MailSender
.
class
).
req
(
MailSMS
.
class
));
...
...
@@ -301,33 +282,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
Postman
.
class
).
req
(
ProjectDao
.
class
,
MailSMS
.
class
,
MailSender
.
class
,
WeixinSender
.
class
,
SmsSender
.
class
,
AlertTypeManager
.
class
));
all
.
add
(
C
(
BusinessAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
BusinessAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
BusinessRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
NetworkAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
NetworkAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
NetworkRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
SystemAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
SystemAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
SystemRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
AlertExceptionBuilder
.
class
).
req
(
ExceptionConfigManager
.
class
));
all
.
add
(
C
(
ExceptionAlert
.
class
)
.
req
(
ExceptionAlertConfig
.
class
,
ExceptionConfigManager
.
class
,
AlertExceptionBuilder
.
class
)
.
req
(
ModelService
.
class
,
TopAnalyzer
.
ID
).
req
(
ExceptionPostman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
AlertSummaryExecutor
.
class
).
req
(
AlertSummaryGenerator
.
class
,
AlertSummaryManager
.
class
,
MailSMS
.
class
)
.
req
(
AlertSummaryDecorator
.
class
,
AlertSummaryFTLDecorator
.
ID
));
...
...
@@ -337,29 +293,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AlertSummaryManager
.
class
).
req
(
AlertSummaryDao
.
class
));
all
.
add
(
C
(
NetGraphConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
NetGraphBuilder
.
class
));
all
.
add
(
C
(
NetGraphManager
.
class
).
req
(
ServerConfigManager
.
class
,
RemoteMetricReportService
.
class
).
req
(
ReportService
.
class
,
NetGraphBuilder
.
class
,
AlertInfo
.
class
,
NetGraphConfigManager
.
class
));
// database
all
.
add
(
C
(
JdbcDataSourceDescriptorManager
.
class
)
//
.
config
(
E
(
"datasourceFile"
).
value
(
"/data/appdatas/cat/datasources.xml"
)));
all
.
addAll
(
new
CatDatabaseConfigurator
().
defineComponents
());
all
.
addAll
(
new
UserDatabaseConfigurator
().
defineComponents
());
// update project database
all
.
add
(
C
(
ProjectUpdateTask
.
class
)
//
.
req
(
ProjectDao
.
class
,
HostinfoDao
.
class
));
// web, please keep it last
all
.
addAll
(
new
WebComponentConfigurator
().
defineComponents
());
// for alarm module
all
.
addAll
(
new
AlarmComponentConfigurator
().
defineComponents
());
return
all
;
}
}
cat-home/src/main/java/com/dianping/cat/report/task/router/RouterBuilder.java
0 → 100644
浏览文件 @
33560f1b
package
com.dianping.cat.report.task.router
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.consumer.state.model.entity.ProcessDomain
;
import
com.dianping.cat.consumer.state.model.entity.StateReport
;
import
com.dianping.cat.consumer.state.model.transform.BaseVisitor
;
import
com.dianping.cat.helper.MapUtils
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.task.spi.ReportTaskBuilder
;
public
class
RouterBuilder
implements
ReportTaskBuilder
{
@Inject
private
ReportService
m_reportService
;
@Override
public
boolean
buildDailyTask
(
String
name
,
String
domain
,
Date
period
)
{
Date
start
=
period
;
Date
end
=
new
Date
(
start
.
getTime
()
+
TimeUtil
.
ONE_DAY
);
StateReport
report
=
m_reportService
.
queryStateReport
(
Constants
.
CAT
,
start
,
end
);
StateReportVisitor
visitor
=
new
StateReportVisitor
();
visitor
.
visitStateReport
(
report
);
Map
<
String
,
Long
>
numbers
=
visitor
.
getNumbers
();
Comparator
<
Entry
<
String
,
Long
>>
compator
=
new
Comparator
<
Map
.
Entry
<
String
,
Long
>>()
{
@Override
public
int
compare
(
Entry
<
String
,
Long
>
o1
,
Entry
<
String
,
Long
>
o2
)
{
return
(
int
)
(
o1
.
getValue
()
-
o2
.
getValue
());
}
};
numbers
=
MapUtils
.
sortMap
(
numbers
,
compator
);
return
false
;
}
public
static
class
StateReportVisitor
extends
BaseVisitor
{
private
Map
<
String
,
Long
>
m_numbers
=
new
HashMap
<
String
,
Long
>();
@Override
public
void
visitProcessDomain
(
ProcessDomain
processDomain
)
{
String
domain
=
processDomain
.
getName
();
long
total
=
processDomain
.
getTotal
();
Long
count
=
m_numbers
.
get
(
domain
);
if
(
count
==
null
)
{
m_numbers
.
put
(
domain
,
total
);
}
else
{
m_numbers
.
put
(
domain
,
total
+
count
);
}
}
public
Map
<
String
,
Long
>
getNumbers
()
{
return
m_numbers
;
}
}
@Override
public
boolean
buildHourlyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support hourly task"
);
}
@Override
public
boolean
buildMonthlyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support monthly task"
);
}
@Override
public
boolean
buildWeeklyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support weekly task"
);
}
}
cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java
浏览文件 @
33560f1b
...
...
@@ -76,8 +76,6 @@ public class ReportFacade extends ContainerHolder implements LogEnabled, Initial
@Override
public
void
initialize
()
throws
InitializationException
{
m_reportBuilders
=
lookupMap
(
ReportTaskBuilder
.
class
);
System
.
out
.
println
(
m_reportBuilders
.
size
());
}
}
cat-home/src/main/java/com/dianping/cat/system/config/RouterConfigManager.java
0 → 100644
浏览文件 @
33560f1b
package
com.dianping.cat.system.config
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
org.codehaus.plexus.logging.LogEnabled
;
import
org.codehaus.plexus.logging.Logger
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.dal.jdbc.DalNotFoundException
;
import
org.unidal.helper.Files
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.core.config.Config
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.config.ConfigEntity
;
import
com.dianping.cat.home.router.entity.RouterConfig
;
import
com.dianping.cat.home.router.transform.DefaultSaxParser
;
public
class
RouterConfigManager
implements
Initializable
,
LogEnabled
{
@Inject
private
ConfigDao
m_configDao
;
private
int
m_configId
;
private
RouterConfig
m_routerConfig
;
private
Logger
m_logger
;
private
static
final
String
CONFIG_NAME
=
"routerConfig"
;
private
Map
<
String
,
Set
<
String
>>
m_configs
=
new
HashMap
<
String
,
Set
<
String
>>();
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
}
public
RouterConfig
getRouterConfig
()
{
return
m_routerConfig
;
}
@Override
public
void
initialize
()
throws
InitializationException
{
try
{
Config
config
=
m_configDao
.
findByName
(
CONFIG_NAME
,
ConfigEntity
.
READSET_FULL
);
String
content
=
config
.
getContent
();
m_configId
=
config
.
getId
();
m_routerConfig
=
DefaultSaxParser
.
parse
(
content
);
}
catch
(
DalNotFoundException
e
)
{
try
{
String
content
=
Files
.
forIO
().
readFrom
(
this
.
getClass
().
getResourceAsStream
(
"/config/default-router-config.xml"
),
"utf-8"
);
Config
config
=
m_configDao
.
createLocal
();
config
.
setName
(
CONFIG_NAME
);
config
.
setContent
(
content
);
m_configDao
.
insert
(
config
);
m_configId
=
config
.
getId
();
m_routerConfig
=
DefaultSaxParser
.
parse
(
content
);
}
catch
(
Exception
ex
)
{
Cat
.
logError
(
ex
);
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
if
(
m_routerConfig
==
null
)
{
m_routerConfig
=
new
RouterConfig
();
}
}
public
boolean
insert
(
String
xml
)
{
try
{
m_routerConfig
=
DefaultSaxParser
.
parse
(
xml
);
boolean
result
=
storeConfig
();
m_configs
.
clear
();
return
result
;
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
m_logger
.
error
(
e
.
getMessage
(),
e
);
return
false
;
}
}
private
boolean
storeConfig
()
{
synchronized
(
this
)
{
try
{
Config
config
=
m_configDao
.
createLocal
();
config
.
setId
(
m_configId
);
config
.
setKeyId
(
m_configId
);
config
.
setName
(
CONFIG_NAME
);
config
.
setContent
(
m_routerConfig
.
toString
());
m_configDao
.
updateByPK
(
config
,
ConfigEntity
.
UPDATESET_FULL
);
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
return
false
;
}
}
return
true
;
}
}
\ No newline at end of file
cat-home/src/main/resources/META-INF/dal/model/router-codegen.xml
浏览文件 @
33560f1b
<?xml version="1.0" encoding="UTF-8"?>
<model>
<entity
name=
"router-config"
root=
"true"
>
<entity-ref
name=
"default-server"
type=
"list"
names=
"default-servers"
/>
<entity-ref
name=
"domain"
type=
"list"
names=
"domains"
/>
</entity>
<entity
name=
"default-server"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"weight"
value-type=
"int"
/>
<attribute
name=
"port"
value-type=
"int"
/>
<attribute
name=
"enable"
value-type=
"boolean"
/>
</entity>
<entity
name=
"domain"
>
<attribute
name=
"id"
value-type=
"String"
/>
<entity-ref
name=
"server"
type=
"list"
names=
"servers"
/>
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
33560f1b
此差异已折叠。
点击以展开。
cat-home/src/test/resources/config/router-config.xml
浏览文件 @
33560f1b
<router-config>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"true"
/>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"false"
/>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"true"
/>
<domain
id=
"Cat"
>
<server
id=
"10.1.6.101"
port=
"2280"
></server>
<server
id=
"10.1.6.102"
port=
"2280"
></server>
<server
id=
"10.1.6.103"
port=
"2280"
></server>
<server
id=
"10.1.6.101"
port=
"2280"
></server>
<server
id=
"10.1.6.102"
port=
"2280"
></server>
<server
id=
"10.1.6.103"
port=
"2280"
></server>
</domain>
<domain></domain>
</router-config>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录