Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
70a86b5c
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,发现更多精彩内容 >>
提交
70a86b5c
编写于
7月 18, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refator thread info
上级
86279b65
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
202 addition
and
236 deletion
+202
-236
cat-client/src/main/java/com/dianping/cat/CatClientModule.java
...lient/src/main/java/com/dianping/cat/CatClientModule.java
+1
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
.../main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
+1
-2
cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java
.../main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java
+121
-131
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
+12
-8
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+5
-5
cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java
...ianping/cat/build/ReportServiceComponentConfigurator.java
+3
-3
cat-home/src/main/java/com/dianping/cat/report/service/MonthlyReportCache.java
...a/com/dianping/cat/report/service/MonthlyReportCache.java
+1
-1
cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java
...m/dianping/cat/report/service/impl/ReportServiceImpl.java
+2
-2
cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java
...n/java/com/dianping/cat/report/view/DomainNavManager.java
+33
-44
cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java
...java/com/dianping/cat/system/config/ConfigReloadTask.java
+20
-30
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+3
-9
未找到文件。
cat-client/src/main/java/com/dianping/cat/CatClientModule.java
浏览文件 @
70a86b5c
...
@@ -35,7 +35,7 @@ public class CatClientModule extends AbstractModule {
...
@@ -35,7 +35,7 @@ public class CatClientModule extends AbstractModule {
ThreadRenamingRunnable
.
setThreadNameDeterminer
(
ThreadNameDeterminer
.
CURRENT
);
ThreadRenamingRunnable
.
setThreadNameDeterminer
(
ThreadNameDeterminer
.
CURRENT
);
// tracking thread start/stop
// tracking thread start/stop
//
Threads.addListener(new CatThreadListener(ctx));
Threads
.
addListener
(
new
CatThreadListener
(
ctx
));
File
clientConfigFile
=
ctx
.
getAttribute
(
"cat-client-config-file"
);
File
clientConfigFile
=
ctx
.
getAttribute
(
"cat-client-config-file"
);
ClientConfigManager
clientConfigManager
=
ctx
.
lookup
(
ClientConfigManager
.
class
);
ClientConfigManager
clientConfigManager
=
ctx
.
lookup
(
ClientConfigManager
.
class
);
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
浏览文件 @
70a86b5c
...
@@ -75,7 +75,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
...
@@ -75,7 +75,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
new
ProblemReportVisitor
(
topReport
).
visitProblemReport
(
report
);
new
ProblemReportVisitor
(
topReport
).
visitProblemReport
(
report
);
}
}
}
}
return
topReport
;
return
topReport
;
}
}
...
@@ -93,7 +92,7 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
...
@@ -93,7 +92,7 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
}
}
private
boolean
validateDomain
(
String
domain
)
{
private
boolean
validateDomain
(
String
domain
)
{
return
!
domain
.
equals
(
"FrontEnd"
);
return
!
domain
.
equals
(
ReportConstants
.
FRONT_END
)
&&
!
domain
.
equals
(
ReportConstants
.
ALL
);
}
}
static
class
ProblemReportVisitor
extends
com
.
dianping
.
cat
.
consumer
.
problem
.
model
.
transform
.
BaseVisitor
{
static
class
ProblemReportVisitor
extends
com
.
dianping
.
cat
.
consumer
.
problem
.
model
.
transform
.
BaseVisitor
{
...
...
cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java
浏览文件 @
70a86b5c
...
@@ -22,7 +22,6 @@ import org.unidal.helper.Files.AutoClose;
...
@@ -22,7 +22,6 @@ import org.unidal.helper.Files.AutoClose;
import
org.unidal.helper.Formats
;
import
org.unidal.helper.Formats
;
import
org.unidal.helper.Scanners
;
import
org.unidal.helper.Scanners
;
import
org.unidal.helper.Scanners.FileMatcher
;
import
org.unidal.helper.Scanners.FileMatcher
;
import
org.unidal.helper.Threads
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.annotation.Inject
;
...
@@ -33,7 +32,7 @@ import com.dianping.cat.message.Message;
...
@@ -33,7 +32,7 @@ import com.dianping.cat.message.Message;
import
com.dianping.cat.message.MessageProducer
;
import
com.dianping.cat.message.MessageProducer
;
import
com.dianping.cat.message.Transaction
;
import
com.dianping.cat.message.Transaction
;
public
class
DumpUploader
implements
Initializable
,
LogEnabled
{
public
class
DumpUploader
implements
Initializable
,
Task
,
LogEnabled
{
@Inject
@Inject
private
ServerConfigManager
m_configManager
;
private
ServerConfigManager
m_configManager
;
...
@@ -44,22 +43,28 @@ public class DumpUploader implements Initializable, LogEnabled {
...
@@ -44,22 +43,28 @@ public class DumpUploader implements Initializable, LogEnabled {
private
Logger
m_logger
;
private
Logger
m_logger
;
private
Thread
m_job
;
private
long
m_sleepPeriod
=
1000L
*
60
;
private
long
m_sleepPeriod
=
1000L
*
60
;
private
volatile
boolean
m_active
=
true
;
@Override
@Override
public
void
enableLogging
(
Logger
logger
)
{
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
m_logger
=
logger
;
}
}
@Override
public
String
getName
()
{
return
"DumpUploader"
;
}
@Override
@Override
public
void
initialize
()
throws
InitializationException
{
public
void
initialize
()
throws
InitializationException
{
m_baseDir
=
m_configManager
.
getHdfsLocalBaseDir
(
"dump"
);
m_baseDir
=
m_configManager
.
getHdfsLocalBaseDir
(
"dump"
);
if
(!
m_configManager
.
isLocalMode
())
{
}
if
(
m_job
==
null
)
{
m_job
=
Threads
.
forGroup
(
"Cat"
).
start
(
new
WriteJob
());
private
boolean
isActive
()
{
}
synchronized
(
this
)
{
return
m_active
;
}
}
}
}
...
@@ -72,163 +77,148 @@ public class DumpUploader implements Initializable, LogEnabled {
...
@@ -72,163 +77,148 @@ public class DumpUploader implements Initializable, LogEnabled {
return
out
;
return
out
;
}
}
public
void
setSleepPeriod
(
long
period
)
{
@Override
m_sleepPeriod
=
period
;
public
void
run
()
{
}
while
(
isActive
())
{
try
{
class
WriteJob
implements
Task
{
if
(
Cat
.
isInitialized
())
{
private
volatile
boolean
m_active
=
true
;
Calendar
cal
=
Calendar
.
getInstance
();
@Override
if
(
cal
.
get
(
Calendar
.
MINUTE
)
>=
10
)
{
public
String
getName
()
{
upload
();
return
"DumpUploader"
;
}
private
boolean
isActive
()
{
synchronized
(
this
)
{
return
m_active
;
}
}
@Override
public
void
run
()
{
while
(
isActive
())
{
try
{
if
(
Cat
.
isInitialized
())
{
Calendar
cal
=
Calendar
.
getInstance
();
if
(
cal
.
get
(
Calendar
.
MINUTE
)
>=
10
)
{
upload
();
}
}
}
}
catch
(
Exception
e
)
{
m_logger
.
warn
(
"Error when dumping message to HDFS. "
+
e
.
getMessage
());
}
try
{
Thread
.
sleep
(
m_sleepPeriod
);
}
catch
(
InterruptedException
e
)
{
m_active
=
false
;
}
}
}
catch
(
Exception
e
)
{
m_logger
.
warn
(
"Error when dumping message to HDFS. "
+
e
.
getMessage
());
}
}
}
try
{
Thread
.
sleep
(
m_sleepPeriod
);
@Override
}
catch
(
InterruptedException
e
)
{
public
void
shutdown
()
{
synchronized
(
this
)
{
m_active
=
false
;
m_active
=
false
;
}
}
}
}
}
private
void
upload
(
)
{
public
void
setSleepPeriod
(
long
period
)
{
File
baseDir
=
new
File
(
m_baseDir
,
"outbox"
)
;
m_sleepPeriod
=
period
;
final
List
<
String
>
paths
=
new
ArrayList
<
String
>();
}
Scanners
.
forDir
().
scan
(
baseDir
,
new
FileMatcher
()
{
@Override
@Override
public
void
shutdown
()
{
public
Direction
matches
(
File
base
,
String
path
)
{
synchronized
(
this
)
{
if
(
new
File
(
base
,
path
).
isFile
())
{
m_active
=
false
;
paths
.
add
(
path
);
}
}
}
return
Direction
.
DOWN
;
private
void
upload
()
{
File
baseDir
=
new
File
(
m_baseDir
,
"outbox"
);
final
List
<
String
>
paths
=
new
ArrayList
<
String
>();
Scanners
.
forDir
().
scan
(
baseDir
,
new
FileMatcher
()
{
@Override
public
Direction
matches
(
File
base
,
String
path
)
{
if
(
new
File
(
base
,
path
).
isFile
())
{
paths
.
add
(
path
);
}
}
});
int
len
=
paths
.
size
();
return
Direction
.
DOWN
;
}
});
if
(
len
>
0
)
{
int
len
=
paths
.
size
();
Cat
.
setup
(
"DumpUploader"
);
MessageProducer
cat
=
Cat
.
getProducer
();
if
(
len
>
0
)
{
String
ip
=
NetworkInterfaceManager
.
INSTANCE
.
getLocalHostAddress
();
Cat
.
setup
(
"DumpUploader"
);
Transaction
root
=
cat
.
newTransaction
(
"System"
,
"Dump-"
+
ip
);
Collections
.
sort
(
paths
);
MessageProducer
cat
=
Cat
.
getProducer
();
String
ip
=
NetworkInterfaceManager
.
INSTANCE
.
getLocalHostAddress
();
Transaction
root
=
cat
.
newTransaction
(
"System"
,
"Dump-"
+
ip
);
root
.
addData
(
"files"
,
paths
);
Collections
.
sort
(
paths
);
root
.
setStatus
(
Message
.
SUCCESS
);
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
root
.
addData
(
"files"
,
paths
);
String
path
=
paths
.
get
(
i
);
root
.
setStatus
(
Message
.
SUCCESS
);
Transaction
t
=
cat
.
newTransaction
(
"System"
,
"UploadDump"
);
File
file
=
new
File
(
baseDir
,
path
);
t
.
addData
(
"file"
,
path
);
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
String
path
=
paths
.
get
(
i
);
Transaction
t
=
cat
.
newTransaction
(
"System"
,
"UploadDump"
);
File
file
=
new
File
(
baseDir
,
path
);
FSDataOutputStream
fdos
=
null
;
t
.
addData
(
"file"
,
path
);
try
{
fdos
=
makeHdfsOutputStream
(
path
);
FileInputStream
fis
=
new
FileInputStream
(
file
);
long
start
=
System
.
currentTimeMillis
();
FSDataOutputStream
fdos
=
null
;
try
{
fdos
=
makeHdfsOutputStream
(
path
);
FileInputStream
fis
=
new
FileInputStream
(
file
);
Files
.
forIO
().
copy
(
fis
,
fdos
,
AutoClose
.
INPUT_OUTPUT
);
long
start
=
System
.
currentTimeMillis
(
);
double
sec
=
(
System
.
currentTimeMillis
()
-
start
)
/
1000
d
;
Files
.
forIO
().
copy
(
fis
,
fdos
,
AutoClose
.
INPUT_OUTPUT
);
String
size
=
Formats
.
forNumber
().
format
(
file
.
length
(),
"0.#"
,
"B"
);
String
speed
=
sec
<=
0
?
"N/A"
:
Formats
.
forNumber
().
format
(
file
.
length
()
/
sec
,
"0.0"
,
"B/s"
);
t
.
addData
(
"size"
,
size
)
;
double
sec
=
(
System
.
currentTimeMillis
()
-
start
)
/
1000
d
;
t
.
addData
(
"speed"
,
speed
);
String
size
=
Formats
.
forNumber
().
format
(
file
.
length
(),
"0.#"
,
"B"
);
t
.
setStatus
(
Message
.
SUCCESS
);
String
speed
=
sec
<=
0
?
"N/A"
:
Formats
.
forNumber
().
format
(
file
.
length
()
/
sec
,
"0.0"
,
"B/s"
);
if
(!
file
.
delete
())
{
t
.
addData
(
"size"
,
size
);
m_logger
.
warn
(
"Can't delete file: "
+
file
);
t
.
addData
(
"speed"
,
speed
);
}
t
.
setStatus
(
Message
.
SUCCESS
);
}
catch
(
AlreadyBeingCreatedException
e
)
{
Cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"Already being created (%s)!"
,
path
),
e
);
}
catch
(
AccessControlException
e
)
{
cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"No permission to create HDFS file(%s)!"
,
path
),
e
);
}
catch
(
Exception
e
)
{
cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"Uploading file(%s) to HDFS(%s) failed!"
,
file
,
path
),
e
);
}
finally
{
try
{
if
(
fdos
!=
null
)
{
fdos
.
close
();
}
}
catch
(
IOException
e
)
{
Cat
.
logError
(
e
);
}
t
.
complete
();
}
if
(!
file
.
delete
())
{
m_logger
.
warn
(
"Can't delete file: "
+
file
);
}
}
catch
(
AlreadyBeingCreatedException
e
)
{
Cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"Already being created (%s)!"
,
path
),
e
);
}
catch
(
AccessControlException
e
)
{
cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"No permission to create HDFS file(%s)!"
,
path
),
e
);
}
catch
(
Exception
e
)
{
cat
.
logError
(
e
);
t
.
setStatus
(
e
);
m_logger
.
error
(
String
.
format
(
"Uploading file(%s) to HDFS(%s) failed!"
,
file
,
path
),
e
);
}
finally
{
try
{
try
{
Thread
.
sleep
(
100
);
if
(
fdos
!=
null
)
{
}
catch
(
InterruptedException
e
)
{
fdos
.
close
();
break
;
}
}
catch
(
IOException
e
)
{
Cat
.
logError
(
e
);
}
}
t
.
complete
();
}
}
root
.
complete
();
try
{
Thread
.
sleep
(
100
);
}
catch
(
InterruptedException
e
)
{
break
;
}
}
}
// the path has two depth
root
.
complete
();
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
}
final
List
<
String
>
directionPaths
=
new
ArrayList
<
String
>();
Scanners
.
forDir
().
scan
(
baseDir
,
new
FileMatcher
()
{
// the path has two depth
@Override
for
(
int
i
=
0
;
i
<
2
;
i
++)
{
public
Direction
matches
(
File
base
,
String
path
)
{
final
List
<
String
>
directionPaths
=
new
ArrayList
<
String
>();
if
(
new
File
(
base
,
path
).
isDirectory
())
{
directionPaths
.
add
(
path
);
}
return
Direction
.
DOWN
;
Scanners
.
forDir
().
scan
(
baseDir
,
new
FileMatcher
()
{
@Override
public
Direction
matches
(
File
base
,
String
path
)
{
if
(
new
File
(
base
,
path
).
isDirectory
())
{
directionPaths
.
add
(
path
);
}
}
});
for
(
String
path
:
directionPaths
)
{
try
{
File
file
=
new
File
(
baseDir
,
path
);
file
.
delete
();
return
Direction
.
DOWN
;
}
catch
(
Exception
e
)
{
}
}
});
for
(
String
path
:
directionPaths
)
{
try
{
File
file
=
new
File
(
baseDir
,
path
);
file
.
delete
();
}
catch
(
Exception
e
)
{
}
}
}
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
浏览文件 @
70a86b5c
...
@@ -9,7 +9,6 @@ import org.unidal.initialization.ModuleContext;
...
@@ -9,7 +9,6 @@ import org.unidal.initialization.ModuleContext;
import
com.dianping.cat.consumer.CatConsumerAdvancedModule
;
import
com.dianping.cat.consumer.CatConsumerAdvancedModule
;
import
com.dianping.cat.consumer.CatConsumerModule
;
import
com.dianping.cat.consumer.CatConsumerModule
;
import
com.dianping.cat.consumer.problem.aggregation.AggregationConfigManager
;
import
com.dianping.cat.hadoop.hdfs.DumpUploader
;
import
com.dianping.cat.hadoop.hdfs.DumpUploader
;
import
com.dianping.cat.message.spi.core.MessageConsumer
;
import
com.dianping.cat.message.spi.core.MessageConsumer
;
import
com.dianping.cat.message.spi.core.TcpSocketReceiver
;
import
com.dianping.cat.message.spi.core.TcpSocketReceiver
;
...
@@ -21,6 +20,7 @@ import com.dianping.cat.system.alarm.AlarmTask;
...
@@ -21,6 +20,7 @@ import com.dianping.cat.system.alarm.AlarmTask;
import
com.dianping.cat.system.alarm.threshold.listener.ExceptionDataListener
;
import
com.dianping.cat.system.alarm.threshold.listener.ExceptionDataListener
;
import
com.dianping.cat.system.alarm.threshold.listener.ServiceDataListener
;
import
com.dianping.cat.system.alarm.threshold.listener.ServiceDataListener
;
import
com.dianping.cat.system.alarm.threshold.listener.ThresholdAlertListener
;
import
com.dianping.cat.system.alarm.threshold.listener.ThresholdAlertListener
;
import
com.dianping.cat.system.config.ConfigReloadTask
;
import
com.dianping.cat.system.event.EventListenerRegistry
;
import
com.dianping.cat.system.event.EventListenerRegistry
;
import
com.dianping.cat.system.notify.ScheduledMailTask
;
import
com.dianping.cat.system.notify.ScheduledMailTask
;
...
@@ -30,26 +30,30 @@ public class CatHomeModule extends AbstractModule {
...
@@ -30,26 +30,30 @@ public class CatHomeModule extends AbstractModule {
@Override
@Override
protected
void
execute
(
ModuleContext
ctx
)
throws
Exception
{
protected
void
execute
(
ModuleContext
ctx
)
throws
Exception
{
ServerConfigManager
serverConfigManager
=
ctx
.
lookup
(
ServerConfigManager
.
class
);
ServerConfigManager
serverConfigManager
=
ctx
.
lookup
(
ServerConfigManager
.
class
);
ctx
.
lookup
(
DumpUploader
.
class
);
ctx
.
lookup
(
MessageConsumer
.
class
);
ctx
.
lookup
(
MessageConsumer
.
class
);
ctx
.
lookup
(
DomainNavManager
.
class
);
if
(!
serverConfigManager
.
isLocalMode
())
{
ctx
.
lookup
(
AggregationConfigManager
.
class
);
ConfigReloadTask
configReloadTask
=
ctx
.
lookup
(
ConfigReloadTask
.
class
);
DumpUploader
uploader
=
ctx
.
lookup
(
DumpUploader
.
class
);
Threads
.
forGroup
(
"Cat"
).
start
(
configReloadTask
);
Threads
.
forGroup
(
"Cat"
).
start
(
uploader
);
}
if
(
serverConfigManager
.
isJobMachine
()
&&
!
serverConfigManager
.
isLocalMode
())
{
if
(
serverConfigManager
.
isJobMachine
()
&&
!
serverConfigManager
.
isLocalMode
())
{
// MetricAlert metricAlert = ctx.lookup(MetricAlert.class);
// Threads.forGroup("Cat").start(metricAlert);
DefaultTaskConsumer
taskConsumer
=
ctx
.
lookup
(
DefaultTaskConsumer
.
class
);
DefaultTaskConsumer
taskConsumer
=
ctx
.
lookup
(
DefaultTaskConsumer
.
class
);
MetricAlert
metricAlert
=
ctx
.
lookup
(
MetricAlert
.
class
);
MetricAlert
metricAlert
=
ctx
.
lookup
(
MetricAlert
.
class
);
DomainNavManager
domainNavManager
=
ctx
.
lookup
(
DomainNavManager
.
class
);
Threads
.
forGroup
(
"Cat"
).
start
(
domainNavManager
);
Threads
.
forGroup
(
"Cat"
).
start
(
metricAlert
);
Threads
.
forGroup
(
"Cat"
).
start
(
metricAlert
);
Threads
.
forGroup
(
"Cat"
).
start
(
taskConsumer
);
Threads
.
forGroup
(
"Cat"
).
start
(
taskConsumer
);
}
}
executeAlarmModule
(
ctx
);
executeAlarmModule
(
ctx
);
}
}
private
void
executeAlarmModule
(
ModuleContext
ctx
)
throws
Exception
{
private
void
executeAlarmModule
(
ModuleContext
ctx
)
throws
Exception
{
ServerConfigManager
serverConfigManager
=
ctx
.
lookup
(
ServerConfigManager
.
class
);
ServerConfigManager
serverConfigManager
=
ctx
.
lookup
(
ServerConfigManager
.
class
);
EventListenerRegistry
registry
=
ctx
.
lookup
(
EventListenerRegistry
.
class
);
EventListenerRegistry
registry
=
ctx
.
lookup
(
EventListenerRegistry
.
class
);
ExceptionDataListener
exceptionDataListener
=
ctx
.
lookup
(
ExceptionDataListener
.
class
);
ExceptionDataListener
exceptionDataListener
=
ctx
.
lookup
(
ExceptionDataListener
.
class
);
ServiceDataListener
serviceDataListener
=
ctx
.
lookup
(
ServiceDataListener
.
class
);
ServiceDataListener
serviceDataListener
=
ctx
.
lookup
(
ServiceDataListener
.
class
);
...
...
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
70a86b5c
...
@@ -48,14 +48,14 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -48,14 +48,14 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ValueTranslater
.
class
));
.
req
(
ValueTranslater
.
class
));
all
.
add
(
C
(
PayloadNormalizer
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
PayloadNormalizer
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
StateGraphs
.
class
,
StateGraphs
.
class
).
//
all
.
add
(
C
(
StateGraphs
.
class
,
StateGraphs
.
class
).
//
req
(
ReportService
.
class
));
req
(
ReportService
.
class
));
all
.
add
(
C
(
Module
.
class
,
CatHomeModule
.
ID
,
CatHomeModule
.
class
));
all
.
add
(
C
(
Module
.
class
,
CatHomeModule
.
ID
,
CatHomeModule
.
class
));
all
.
add
(
C
(
ModuleManager
.
class
,
DefaultModuleManager
.
class
)
//
all
.
add
(
C
(
ModuleManager
.
class
,
DefaultModuleManager
.
class
)
//
.
config
(
E
(
"topLevelModules"
).
value
(
CatHomeModule
.
ID
)));
.
config
(
E
(
"topLevelModules"
).
value
(
CatHomeModule
.
ID
)));
all
.
add
(
C
(
DomainNavManager
.
class
).
req
(
ProjectDao
.
class
,
ServerConfigManager
.
class
));
all
.
add
(
C
(
DomainNavManager
.
class
).
req
(
ProjectDao
.
class
));
all
.
add
(
C
(
EventCollectManager
.
class
).
req
(
EventDao
.
class
,
ServerConfigManager
.
class
));
all
.
add
(
C
(
EventCollectManager
.
class
).
req
(
EventDao
.
class
,
ServerConfigManager
.
class
));
...
@@ -70,7 +70,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -70,7 +70,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
"dependency"
));
.
req
(
ModelService
.
class
,
"dependency"
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
));
// report serivce
// report serivce
all
.
addAll
(
new
ReportServiceComponentConfigurator
().
defineComponents
());
all
.
addAll
(
new
ReportServiceComponentConfigurator
().
defineComponents
());
// task
// task
...
@@ -84,7 +84,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -84,7 +84,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
.
config
(
E
(
"datasourceFile"
).
value
(
"/data/appdatas/cat/datasources.xml"
)));
.
config
(
E
(
"datasourceFile"
).
value
(
"/data/appdatas/cat/datasources.xml"
)));
all
.
addAll
(
new
CatDatabaseConfigurator
().
defineComponents
());
all
.
addAll
(
new
CatDatabaseConfigurator
().
defineComponents
());
all
.
addAll
(
new
UserDatabaseConfigurator
().
defineComponents
());
all
.
addAll
(
new
UserDatabaseConfigurator
().
defineComponents
());
// for abtest module
// for abtest module
all
.
addAll
(
new
ABTestComponentConfigurator
().
defineComponents
());
all
.
addAll
(
new
ABTestComponentConfigurator
().
defineComponents
());
...
@@ -93,7 +93,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -93,7 +93,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
// for alarm module
// for alarm module
all
.
addAll
(
new
AlarmComponentConfigurator
().
defineComponents
());
all
.
addAll
(
new
AlarmComponentConfigurator
().
defineComponents
());
return
all
;
return
all
;
}
}
}
}
cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java
浏览文件 @
70a86b5c
...
@@ -14,7 +14,7 @@ import com.dianping.cat.core.dal.MonthlyReportDao;
...
@@ -14,7 +14,7 @@ import com.dianping.cat.core.dal.MonthlyReportDao;
import
com.dianping.cat.core.dal.WeeklyReportDao
;
import
com.dianping.cat.core.dal.WeeklyReportDao
;
import
com.dianping.cat.report.service.DailyReportService
;
import
com.dianping.cat.report.service.DailyReportService
;
import
com.dianping.cat.report.service.HourlyReportService
;
import
com.dianping.cat.report.service.HourlyReportService
;
import
com.dianping.cat.report.service.MonthReportCache
;
import
com.dianping.cat.report.service.Month
ly
ReportCache
;
import
com.dianping.cat.report.service.MonthlyReportService
;
import
com.dianping.cat.report.service.MonthlyReportService
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.service.WeeklyReportCache
;
import
com.dianping.cat.report.service.WeeklyReportCache
;
...
@@ -45,13 +45,13 @@ public class ReportServiceComponentConfigurator extends AbstractResourceConfigur
...
@@ -45,13 +45,13 @@ public class ReportServiceComponentConfigurator extends AbstractResourceConfigur
all
.
add
(
C
(
WeeklyReportCache
.
class
)
//
all
.
add
(
C
(
WeeklyReportCache
.
class
)
//
.
req
(
DailyReportService
.
class
,
HourlyReportService
.
class
,
ServerConfigManager
.
class
));
.
req
(
DailyReportService
.
class
,
HourlyReportService
.
class
,
ServerConfigManager
.
class
));
all
.
add
(
C
(
MonthReportCache
.
class
)
//
all
.
add
(
C
(
Month
ly
ReportCache
.
class
)
//
.
req
(
DailyReportService
.
class
,
HourlyReportService
.
class
,
ServerConfigManager
.
class
));
.
req
(
DailyReportService
.
class
,
HourlyReportService
.
class
,
ServerConfigManager
.
class
));
all
.
add
(
C
(
ReportService
.
class
,
ReportServiceImpl
.
class
)
//
all
.
add
(
C
(
ReportService
.
class
,
ReportServiceImpl
.
class
)
//
.
req
(
HourlyReportService
.
class
,
DailyReportService
.
class
,
WeeklyReportService
.
class
,
.
req
(
HourlyReportService
.
class
,
DailyReportService
.
class
,
WeeklyReportService
.
class
,
MonthlyReportService
.
class
)
//
MonthlyReportService
.
class
)
//
.
req
(
WeeklyReportCache
.
class
,
MonthReportCache
.
class
));
.
req
(
WeeklyReportCache
.
class
,
Month
ly
ReportCache
.
class
));
return
all
;
return
all
;
...
...
cat-home/src/main/java/com/dianping/cat/report/service/MonthReportCache.java
→
cat-home/src/main/java/com/dianping/cat/report/service/Month
ly
ReportCache.java
浏览文件 @
70a86b5c
...
@@ -26,7 +26,7 @@ import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
...
@@ -26,7 +26,7 @@ import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.message.Transaction
;
import
com.dianping.cat.message.Transaction
;
public
class
MonthReportCache
implements
Initializable
{
public
class
Month
ly
ReportCache
implements
Initializable
{
private
long
m_end
;
private
long
m_end
;
...
...
cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java
浏览文件 @
70a86b5c
...
@@ -23,7 +23,7 @@ import com.dianping.cat.core.dal.WeeklyReport;
...
@@ -23,7 +23,7 @@ import com.dianping.cat.core.dal.WeeklyReport;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.report.service.DailyReportService
;
import
com.dianping.cat.report.service.DailyReportService
;
import
com.dianping.cat.report.service.HourlyReportService
;
import
com.dianping.cat.report.service.HourlyReportService
;
import
com.dianping.cat.report.service.MonthReportCache
;
import
com.dianping.cat.report.service.Month
ly
ReportCache
;
import
com.dianping.cat.report.service.MonthlyReportService
;
import
com.dianping.cat.report.service.MonthlyReportService
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.service.WeeklyReportCache
;
import
com.dianping.cat.report.service.WeeklyReportCache
;
...
@@ -46,7 +46,7 @@ public class ReportServiceImpl implements ReportService {
...
@@ -46,7 +46,7 @@ public class ReportServiceImpl implements ReportService {
private
WeeklyReportCache
m_weeklyReportCache
;
private
WeeklyReportCache
m_weeklyReportCache
;
@Inject
@Inject
private
MonthReportCache
m_monthReportCache
;
private
Month
ly
ReportCache
m_monthReportCache
;
public
static
final
int
s_hourly
=
1
;
public
static
final
int
s_hourly
=
1
;
...
...
cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java
浏览文件 @
70a86b5c
...
@@ -11,34 +11,25 @@ import java.util.concurrent.ConcurrentHashMap;
...
@@ -11,34 +11,25 @@ import java.util.concurrent.ConcurrentHashMap;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.dal.jdbc.DalException
;
import
org.unidal.dal.jdbc.DalException
;
import
org.unidal.helper.Threads
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.ServerConfigManager
;
import
com.dianping.cat.core.dal.Project
;
import
com.dianping.cat.core.dal.Project
;
import
com.dianping.cat.core.dal.ProjectDao
;
import
com.dianping.cat.core.dal.ProjectDao
;
import
com.dianping.cat.core.dal.ProjectEntity
;
import
com.dianping.cat.core.dal.ProjectEntity
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.helper.TimeUtil
;
public
class
DomainNavManager
implements
Initializable
{
public
class
DomainNavManager
implements
Task
,
Initializable
{
@Inject
@Inject
private
ProjectDao
m_projectDao
;
private
ProjectDao
m_projectDao
;
@Inject
private
ServerConfigManager
m_serverConfigManager
;
// key is domain
// key is domain
private
Map
<
String
,
Project
>
m_projects
=
new
ConcurrentHashMap
<
String
,
Project
>();
private
Map
<
String
,
Project
>
m_projects
=
new
ConcurrentHashMap
<
String
,
Project
>();
public
static
final
String
DEFAULT
=
"Default"
;
public
static
final
String
DEFAULT
=
"Default"
;
public
Collection
<
String
>
getDomains
()
{
return
m_projects
.
keySet
();
}
public
Map
<
String
,
Department
>
getDepartment
(
Collection
<
String
>
domains
)
{
public
Map
<
String
,
Department
>
getDepartment
(
Collection
<
String
>
domains
)
{
Map
<
String
,
Department
>
result
=
new
TreeMap
<
String
,
Department
>();
Map
<
String
,
Department
>
result
=
new
TreeMap
<
String
,
Department
>();
...
@@ -53,7 +44,7 @@ public class DomainNavManager implements Initializable {
...
@@ -53,7 +44,7 @@ public class DomainNavManager implements Initializable {
projectLine
=
project
.
getProjectLine
();
projectLine
=
project
.
getProjectLine
();
}
}
Department
temp
=
result
.
get
(
department
);
Department
temp
=
result
.
get
(
department
);
if
(
temp
==
null
)
{
if
(
temp
==
null
)
{
temp
=
new
Department
();
temp
=
new
Department
();
result
.
put
(
department
,
temp
);
result
.
put
(
department
,
temp
);
...
@@ -65,6 +56,15 @@ public class DomainNavManager implements Initializable {
...
@@ -65,6 +56,15 @@ public class DomainNavManager implements Initializable {
return
result
;
return
result
;
}
}
public
Collection
<
String
>
getDomains
()
{
return
m_projects
.
keySet
();
}
@Override
public
String
getName
()
{
return
"Domain-Info-Reload"
;
}
public
Project
getProjectByName
(
String
domain
)
{
public
Project
getProjectByName
(
String
domain
)
{
synchronized
(
m_projects
)
{
synchronized
(
m_projects
)
{
return
m_projects
.
get
(
domain
);
return
m_projects
.
get
(
domain
);
...
@@ -80,9 +80,6 @@ public class DomainNavManager implements Initializable {
...
@@ -80,9 +80,6 @@ public class DomainNavManager implements Initializable {
@Override
@Override
public
void
initialize
()
throws
InitializationException
{
public
void
initialize
()
throws
InitializationException
{
reloadDomainInfo
();
reloadDomainInfo
();
if
(!
m_serverConfigManager
.
isLocalMode
()&&
m_serverConfigManager
.
isJobMachine
())
{
Threads
.
forGroup
(
"Cat"
).
start
(
new
DomainReload
());
}
}
}
public
void
reloadDomainInfo
()
{
public
void
reloadDomainInfo
()
{
...
@@ -101,6 +98,28 @@ public class DomainNavManager implements Initializable {
...
@@ -101,6 +98,28 @@ public class DomainNavManager implements Initializable {
}
}
}
}
@Override
public
void
run
()
{
boolean
active
=
true
;
while
(
active
)
{
try
{
reloadDomainInfo
();
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
try
{
Thread
.
sleep
(
3
*
TimeUtil
.
ONE_MINUTE
);
}
catch
(
InterruptedException
e
)
{
active
=
false
;
}
}
}
@Override
public
void
shutdown
()
{
}
public
static
class
Department
{
public
static
class
Department
{
private
Map
<
String
,
ProjectLine
>
m_projectLines
=
new
HashMap
<
String
,
ProjectLine
>();
private
Map
<
String
,
ProjectLine
>
m_projectLines
=
new
HashMap
<
String
,
ProjectLine
>();
...
@@ -129,36 +148,6 @@ public class DomainNavManager implements Initializable {
...
@@ -129,36 +148,6 @@ public class DomainNavManager implements Initializable {
}
}
}
}
public
class
DomainReload
implements
Task
{
@Override
public
String
getName
()
{
return
"Domain-Info-Reload"
;
}
@Override
public
void
run
()
{
boolean
active
=
true
;
while
(
active
)
{
try
{
reloadDomainInfo
();
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
try
{
Thread
.
sleep
(
3
*
TimeUtil
.
ONE_MINUTE
);
}
catch
(
InterruptedException
e
)
{
active
=
false
;
}
}
}
@Override
public
void
shutdown
()
{
}
}
public
static
class
ProjectLine
{
public
static
class
ProjectLine
{
private
List
<
String
>
m_lineDomains
=
new
ArrayList
<
String
>();
private
List
<
String
>
m_lineDomains
=
new
ArrayList
<
String
>();
...
...
cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java
浏览文件 @
70a86b5c
package
com.dianping.cat.system.config
;
package
com.dianping.cat.system.config
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.helper.Threads
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.annotation.Inject
;
...
@@ -10,7 +7,7 @@ import com.dianping.cat.Cat;
...
@@ -10,7 +7,7 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.consumer.advanced.MetricConfigManager
;
import
com.dianping.cat.consumer.advanced.MetricConfigManager
;
import
com.dianping.cat.consumer.advanced.ProductLineConfigManager
;
import
com.dianping.cat.consumer.advanced.ProductLineConfigManager
;
public
class
ConfigReloadTask
implements
Initializable
{
public
class
ConfigReloadTask
implements
Task
{
@Inject
@Inject
private
ProductLineConfigManager
m_productLineConfigManager
;
private
ProductLineConfigManager
m_productLineConfigManager
;
...
@@ -19,37 +16,30 @@ public class ConfigReloadTask implements Initializable {
...
@@ -19,37 +16,30 @@ public class ConfigReloadTask implements Initializable {
private
MetricConfigManager
m_metricConfigManager
;
private
MetricConfigManager
m_metricConfigManager
;
@Override
@Override
public
void
initialize
()
throws
InitializationException
{
public
String
getName
()
{
Threads
.
forGroup
(
"Cat"
).
start
(
new
Reload
())
;
return
"Config-Reload"
;
}
}
public
class
Reload
implements
Task
{
@Override
@Override
public
void
run
()
{
public
String
getName
()
{
boolean
active
=
true
;
return
"Config-Reload"
;
while
(
active
)
{
}
try
{
m_productLineConfigManager
.
refreshProductLineConfig
();
@Override
m_metricConfigManager
.
refreshMetricConfig
();
public
void
run
()
{
}
catch
(
Exception
e
)
{
boolean
active
=
true
;
Cat
.
logError
(
e
);
while
(
active
)
{
}
try
{
try
{
m_productLineConfigManager
.
refreshProductLineConfig
();
Thread
.
sleep
(
60
*
1000L
);
m_metricConfigManager
.
refreshMetricConfig
();
}
catch
(
InterruptedException
e
)
{
}
catch
(
Exception
e
)
{
active
=
false
;
Cat
.
logError
(
e
);
}
try
{
Thread
.
sleep
(
60
*
1000L
);
}
catch
(
InterruptedException
e
)
{
active
=
false
;
}
}
}
}
}
}
@Override
@Override
public
void
shutdown
()
{
public
void
shutdown
()
{
}
}
}
}
}
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
70a86b5c
...
@@ -50,9 +50,6 @@
...
@@ -50,9 +50,6 @@
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
...
@@ -187,8 +184,8 @@
...
@@ -187,8 +184,8 @@
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.service.MonthReportCache
</role>
<role>
com.dianping.cat.report.service.Month
ly
ReportCache
</role>
<implementation>
com.dianping.cat.report.service.MonthReportCache
</implementation>
<implementation>
com.dianping.cat.report.service.Month
ly
ReportCache
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.report.service.DailyReportService
</role>
<role>
com.dianping.cat.report.service.DailyReportService
</role>
...
@@ -221,7 +218,7 @@
...
@@ -221,7 +218,7 @@
<role>
com.dianping.cat.report.service.WeeklyReportCache
</role>
<role>
com.dianping.cat.report.service.WeeklyReportCache
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.report.service.MonthReportCache
</role>
<role>
com.dianping.cat.report.service.Month
ly
ReportCache
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
...
@@ -2358,9 +2355,6 @@
...
@@ -2358,9 +2355,6 @@
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录