Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
1c5ea991
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,发现更多精彩内容 >>
提交
1c5ea991
编写于
7月 29, 2014
作者:
J
jialinsun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
reslove conflicts
上级
e8ef7e66
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
78 addition
and
23 deletion
+78
-23
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
.../main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
+2
-2
cat-core/src/main/java/com/dianping/cat/ServerConfigManager.java
...e/src/main/java/com/dianping/cat/ServerConfigManager.java
+5
-1
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
+4
-1
cat-home/src/main/java/com/dianping/cat/report/page/dependency/ExternalInfoBuilder.java
...nping/cat/report/page/dependency/ExternalInfoBuilder.java
+7
-1
cat-home/src/main/java/com/dianping/cat/report/page/system/graph/SystemGraphCreator.java
...ping/cat/report/page/system/graph/SystemGraphCreator.java
+22
-12
cat-home/src/main/java/com/dianping/cat/report/page/top/Handler.java
...c/main/java/com/dianping/cat/report/page/top/Handler.java
+4
-1
cat-home/src/main/java/com/dianping/cat/report/page/top/TopMetric.java
...main/java/com/dianping/cat/report/page/top/TopMetric.java
+14
-2
cat-home/src/main/java/com/dianping/cat/report/task/alert/exception/ExceptionAlert.java
...nping/cat/report/task/alert/exception/ExceptionAlert.java
+2
-2
cat-home/src/main/resources/META-INF/cat/client.xml
cat-home/src/main/resources/META-INF/cat/client.xml
+1
-1
cat-home/src/main/webapp/jsp/report/system.jsp
cat-home/src/main/webapp/jsp/report/system.jsp
+1
-0
cat-home/src/test/java/com/dianping/cat/report/task/alert/ExceptionBuilder.java
.../com/dianping/cat/report/task/alert/ExceptionBuilder.java
+16
-0
未找到文件。
cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java
浏览文件 @
1c5ea991
...
...
@@ -77,7 +77,7 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
for
(
String
name
:
domains
)
{
try
{
if
(
m_serverConfigManager
.
validate
Domain
(
name
)
&&
!
name
.
equals
(
Constants
.
ALL
))
{
if
(
m_serverConfigManager
.
filter
Domain
(
name
)
&&
!
name
.
equals
(
Constants
.
ALL
))
{
TransactionReport
report
=
m_transactionAnalyzer
.
getRawReport
(
name
);
transactionReportVisitor
.
visitTransactionReport
(
report
);
...
...
@@ -99,7 +99,7 @@ public class TopAnalyzer extends AbstractMessageAnalyzer<TopReport> implements L
for
(
String
name
:
domains
)
{
try
{
if
(
m_serverConfigManager
.
validate
Domain
(
name
)
&&
!
name
.
equals
(
Constants
.
ALL
))
{
if
(
m_serverConfigManager
.
filter
Domain
(
name
)
&&
!
name
.
equals
(
Constants
.
ALL
))
{
ProblemReport
report
=
m_problemAnalyzer
.
getReport
(
name
);
problemReportVisitor
.
visitProblemReport
(
report
);
...
...
cat-core/src/main/java/com/dianping/cat/ServerConfigManager.java
浏览文件 @
1c5ea991
...
...
@@ -339,8 +339,12 @@ public class ServerConfigManager implements Initializable, LogEnabled {
}
}
public
boolean
filterDomain
(
String
domain
)
{
return
!
domain
.
equals
(
"PhoenixAgent"
)
&&
!
domain
.
equals
(
Constants
.
ALL
);
}
public
boolean
validateDomain
(
String
domain
)
{
return
!
domain
.
equals
(
"PhoenixAgent"
)
&&
!
domain
.
equals
(
Constants
.
FRONT_END
)
&&
!
domain
.
equals
(
Constants
.
ALL
);
return
!
domain
.
equals
(
Constants
.
FRONT_END
)
&&
filterDomain
(
domain
);
}
}
cat-home/src/main/java/com/dianping/cat/CatHomeModule.java
浏览文件 @
1c5ea991
...
...
@@ -50,12 +50,15 @@ public class CatHomeModule extends AbstractModule {
Threads
.
forGroup
(
"Cat"
).
start
(
domainNavManager
);
Threads
.
forGroup
(
"Cat"
).
start
(
taskConsumer
);
}
ExceptionAlert
exceptionAlert
=
ctx
.
lookup
(
ExceptionAlert
.
class
);
Threads
.
forGroup
(
"Cat"
).
start
(
exceptionAlert
);
if
(
serverConfigManager
.
isAlertMachine
()
&&
!
serverConfigManager
.
isLocalMode
())
{
BusinessAlert
metricAlert
=
ctx
.
lookup
(
BusinessAlert
.
class
);
NetworkAlert
networkAlert
=
ctx
.
lookup
(
NetworkAlert
.
class
);
SystemAlert
systemAlert
=
ctx
.
lookup
(
SystemAlert
.
class
);
ExceptionAlert
exceptionAlert
=
ctx
.
lookup
(
ExceptionAlert
.
class
);
//
ExceptionAlert exceptionAlert = ctx.lookup(ExceptionAlert.class);
ProjectUpdateTask
productUpdateTask
=
ctx
.
lookup
(
ProjectUpdateTask
.
class
);
ThirdPartyAlert
thirdPartyAlert
=
ctx
.
lookup
(
ThirdPartyAlert
.
class
);
ThirdPartyAlertBuilder
alertBuildingTask
=
ctx
.
lookup
(
ThirdPartyAlertBuilder
.
class
);
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/ExternalInfoBuilder.java
浏览文件 @
1c5ea991
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.dependency;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.LinkedHashMap
;
...
...
@@ -13,6 +14,7 @@ import java.util.Set;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.ServerConfigManager
;
import
com.dianping.cat.consumer.problem.ProblemAnalyzer
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.consumer.top.TopAnalyzer
;
...
...
@@ -48,6 +50,9 @@ public class ExternalInfoBuilder {
@Inject
private
ExceptionConfigManager
m_configManager
;
@Inject
private
ServerConfigManager
m_serverConfigManager
;
private
SimpleDateFormat
m_dateFormat
=
new
SimpleDateFormat
(
"yyyyMMddHH"
);
private
SimpleDateFormat
m_sdf
=
new
SimpleDateFormat
(
"HH:mm"
);
...
...
@@ -114,7 +119,8 @@ public class ExternalInfoBuilder {
int
minuteCount
=
payload
.
getMinuteCounts
();
int
minute
=
model
.
getMinute
();
TopReport
report
=
queryTopReport
(
payload
);
TopMetric
topMetric
=
new
TopMetric
(
minuteCount
,
payload
.
getTopCounts
(),
m_configManager
);
List
<
String
>
excludeDomains
=
Arrays
.
asList
(
"FrontEnd"
);
TopMetric
topMetric
=
new
TopMetric
(
minuteCount
,
payload
.
getTopCounts
(),
m_configManager
,
excludeDomains
);
Date
end
=
new
Date
(
payload
.
getDate
()
+
TimeUtil
.
ONE_MINUTE
*
minute
);
Date
start
=
new
Date
(
end
.
getTime
()
-
TimeUtil
.
ONE_MINUTE
*
minuteCount
);
...
...
cat-home/src/main/java/com/dianping/cat/report/page/system/graph/SystemGraphCreator.java
浏览文件 @
1c5ea991
...
...
@@ -20,22 +20,31 @@ import com.dianping.cat.report.page.LineChart;
public
class
SystemGraphCreator
extends
AbstractGraphCreator
{
public
static
final
String
PAAS_SYSTEM
=
"paasSystem"
;
public
static
final
String
SYSTEM_TYPE
=
"system"
;
public
static
final
String
JVM_TYPE
=
"jvm"
;
public
static
final
String
NGINX_TYPE
=
"nginx"
;
private
static
final
List
<
String
>
SYSTEM_KEY_LIST
=
new
ArrayList
<
String
>(
Arrays
.
asList
(
"sysCpu:avg"
,
"iowaitCpu:avg"
,
"niceCpu:avg"
,
"stealCpu:avg"
,
"userCpu:avg"
,
"softirqCpu:avg"
,
"idleCpu:avg"
,
"irqCpu:avg"
,
"/-usage:avg"
,
"/-freeInodes:avg"
,
"/-read:sum"
,
"/-write:sum"
,
"/data-usage:avg"
,
"/data-freeInodes:avg"
,
"/data-read:sum"
,
"/data-write:sum"
,
"/usr-usage:avg"
,
"/usr-freeInodes:avg"
,
"/usr-read:sum"
,
"/usr-write:sum"
,
"/var-usage:avg"
,
"/var-freeInodes:avg"
,
"/var-read:sum"
,
"/var-write:sum"
,
"eth0-inFlow:sum"
,
"eth0-outFlow:sum"
,
"eth0-dropped:sum"
,
"eth0-errors:sum"
,
"eth0-collisions:sum"
,
"lo-inFlow:sum"
,
"lo-outFlow:sum"
,
"swapUsage:avg"
,
"loadAvg1:avg"
,
"loadAvg5:avg"
,
"totalMem:avg"
,
"usedMem:avg"
,
"freeMem:avg"
,
"sharedMem:avg"
,
"buffersMem:avg"
,
"cachedMem:avg"
,
"totalProcess:avg"
,
"runningProcess:avg"
,
"swapUsage:avg"
,
"establishedTcp:avg"
,
"loginUsers:avg"
,
"uptime:avg"
,
"md5Change:avg"
,
"hostNameChange:avg"
,
"hostIpChange:avg"
));
private
static
final
List
<
String
>
SYSTEM_KEY_LIST
=
Arrays
.
asList
(
"sysCpu:avg"
,
"iowaitCpu:avg"
,
"niceCpu:avg"
,
"stealCpu:avg"
,
"userCpu:avg"
,
"softirqCpu:avg"
,
"idleCpu:avg"
,
"irqCpu:avg"
,
"/-usage:avg"
,
"/-freeInodes:avg"
,
"/-read:sum"
,
"/-write:sum"
,
"/data-usage:avg"
,
"/data-freeInodes:avg"
,
"/data-read:sum"
,
"/data-write:sum"
,
"/usr-usage:avg"
,
"/usr-freeInodes:avg"
,
"/usr-read:sum"
,
"/usr-write:sum"
,
"/var-usage:avg"
,
"/var-freeInodes:avg"
,
"/var-read:sum"
,
"/var-write:sum"
,
"eth0-inFlow:sum"
,
"eth0-outFlow:sum"
,
"eth0-dropped:sum"
,
"eth0-errors:sum"
,
"eth0-collisions:sum"
,
"lo-inFlow:sum"
,
"lo-outFlow:sum"
,
"swapUsage:avg"
,
"loadAvg1:avg"
,
"loadAvg5:avg"
,
"totalMem:avg"
,
"usedMem:avg"
,
"freeMem:avg"
,
"sharedMem:avg"
,
"buffersMem:avg"
,
"cachedMem:avg"
,
"totalProcess:avg"
,
"runningProcess:avg"
,
"swapUsage:avg"
,
"establishedTcp:avg"
,
"loginUsers:avg"
,
"uptime:avg"
,
"md5Change:avg"
,
"hostNameChange:avg"
,
"hostIpChange:avg"
);
private
static
final
List
<
String
>
PAAS_SYSTEM_KEY_LIST
=
Arrays
.
asList
(
"sysCpu:avg"
,
"userCpu:avg"
,
"cpuUsage:avg"
,
"/-usage:avg"
,
"/-freeInodes:avg"
,
"/-read:sum"
,
"/-write:sum"
,
"eth0-inFlow:sum"
,
"eth0-outFlow:sum"
,
"eth0-dropped:sum"
,
"eth0-errors:sum"
,
"eth0-collisions:sum"
,
"lo-inFlow:sum"
,
"lo-outFlow:sum"
,
"swapUsage:avg"
,
"totalMem:avg"
,
"usedMem:avg"
,
"freeMem:avg"
,
"sharedMem:avg"
,
"buffersMem:avg"
,
"cachedMem:avg"
,
"totalProcess:avg"
,
"runningProcess:avg"
,
"swapUsage:avg"
,
"establishedTcp:avg"
,
"loginUsers:avg"
,
"uptime:avg"
,
"md5Change:avg"
);
private
static
final
List
<
String
>
JVM_KEY_LIST
=
new
ArrayList
<
String
>(
Arrays
.
asList
(
"edenUsage:avg"
,
"oldUsage:avg"
,
"permUsage:avg"
,
"catalinaLogSize:sum"
));
...
...
@@ -131,8 +140,9 @@ public class SystemGraphCreator extends AbstractGraphCreator {
}
protected
List
<
String
>
fetchExpectedKeys
(
String
type
)
{
if
(
SYSTEM_TYPE
.
equalsIgnoreCase
(
type
))
{
if
(
PAAS_SYSTEM
.
equalsIgnoreCase
(
type
))
{
return
PAAS_SYSTEM_KEY_LIST
;
}
else
if
(
SYSTEM_TYPE
.
equalsIgnoreCase
(
type
))
{
return
SYSTEM_KEY_LIST
;
}
else
if
(
JVM_TYPE
.
equalsIgnoreCase
(
type
))
{
return
JVM_KEY_LIST
;
...
...
cat-home/src/main/java/com/dianping/cat/report/page/top/Handler.java
浏览文件 @
1c5ea991
package
com.dianping.cat.report.page.top
;
import
java.io.IOException
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
javax.servlet.ServletException
;
...
...
@@ -79,7 +81,8 @@ public class Handler implements PageHandler<Context> {
}
else
{
minuteCount
=
payload
.
getMinuteCounts
();
}
TopMetric
displayTop
=
new
TopMetric
(
minuteCount
,
payload
.
getTopCounts
(),
m_configManager
);
List
<
String
>
excludeDomains
=
Arrays
.
asList
(
"FrontEnd"
);
TopMetric
displayTop
=
new
TopMetric
(
minuteCount
,
payload
.
getTopCounts
(),
m_configManager
,
excludeDomains
);
displayTop
.
visitTopReport
(
report
);
model
.
setTopReport
(
report
);
...
...
cat-home/src/main/java/com/dianping/cat/report/page/top/TopMetric.java
浏览文件 @
1c5ea991
...
...
@@ -24,6 +24,8 @@ public class TopMetric extends BaseVisitor {
private
ExceptionConfigManager
m_configManager
;
private
List
<
String
>
m_excludedDomains
;
private
String
m_currentDomain
;
private
Date
m_currentStart
;
...
...
@@ -60,6 +62,11 @@ public class TopMetric extends BaseVisitor {
m_cache
=
new
MetricItem
(
count
,
tops
);
}
public
TopMetric
(
int
count
,
int
tops
,
ExceptionConfigManager
configManager
,
List
<
String
>
excludedDomains
)
{
this
(
count
,
tops
,
configManager
);
m_excludedDomains
=
excludedDomains
;
}
public
MetricItem
getCache
()
{
return
m_cache
;
}
...
...
@@ -101,7 +108,12 @@ public class TopMetric extends BaseVisitor {
@Override
public
void
visitDomain
(
Domain
domain
)
{
m_currentDomain
=
domain
.
getName
();
super
.
visitDomain
(
domain
);
if
(
m_excludedDomains
==
null
)
{
super
.
visitDomain
(
domain
);
}
else
if
(!
m_excludedDomains
.
contains
(
m_currentDomain
))
{
super
.
visitDomain
(
domain
);
}
}
@Override
...
...
@@ -258,7 +270,7 @@ public class TopMetric extends BaseVisitor {
public
int
compare
(
Item
o1
,
Item
o2
)
{
int
alert
=
o2
.
getAlert
()
-
o1
.
getAlert
();
int
value
=
(
int
)
(
o2
.
getValue
()
-
o1
.
getValue
());
return
alert
==
0
?
value
:
alert
;
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/task/alert/exception/ExceptionAlert.java
浏览文件 @
1c5ea991
...
...
@@ -114,8 +114,8 @@ public class ExceptionAlert implements Task {
builder
.
buildDate
(
new
Date
()).
buildLevel
(
exception
.
getType
()).
buildContent
(
exception
.
toString
());
builder
.
buildMetric
(
metricName
).
buildProductline
(
domain
).
buildType
(
getName
()).
buildGroup
(
domain
);
AlertEntity
alertEntity
=
builder
.
getAlertEntity
();
m_dispatcherManager
.
send
(
alertEntity
);
//
m_dispatcherManager.send(alertEntity);
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
...
...
cat-home/src/main/resources/META-INF/cat/client.xml
浏览文件 @
1c5ea991
<config
mode=
"client"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema"
xsi:noNamespaceSchemaLocation=
"config.xsd"
>
<domain
id=
"
Cat
"
/>
<domain
id=
"
FrontEnd
"
/>
</config>
cat-home/src/main/webapp/jsp/report/system.jsp
浏览文件 @
1c5ea991
...
...
@@ -200,6 +200,7 @@
<select
style=
"width: 200px;"
name=
"domain"
id=
"domain"
></select>
查询类型
<select
style=
"width: 100px;"
name=
"type"
id=
"type"
>
<option
value=
"paasSystem"
>
Paas系统
</option>
<option
value=
"system"
>
系统
</option>
<option
value=
"jvm"
>
JVM
</option>
<option
value=
"nginx"
>
Nginx
</option>
...
...
cat-home/src/test/java/com/dianping/cat/report/task/alert/ExceptionBuilder.java
0 → 100644
浏览文件 @
1c5ea991
package
com.dianping.cat.report.task.alert
;
import
com.dianping.cat.Cat
;
public
class
ExceptionBuilder
{
public
static
void
main
(
String
args
[])
{
while
(
true
)
{
Cat
.
logError
(
new
RuntimeException
(
"just test for FrontEnd"
));
try
{
Thread
.
sleep
(
5000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录