Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
0ad937ed
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,发现更多精彩内容 >>
提交
0ad937ed
编写于
7月 22, 2014
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix metric analyzer bug
上级
de274ba0
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
57 addition
and
33 deletion
+57
-33
cat-broker/src/main/java/com/dianping/cat/broker/api/page/batch/Handler.java
.../java/com/dianping/cat/broker/api/page/batch/Handler.java
+8
-7
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricAnalyzer.java
...java/com/dianping/cat/consumer/metric/MetricAnalyzer.java
+17
-11
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
...com/dianping/cat/consumer/metric/MetricConfigManager.java
+3
-8
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/ProductLineConfigManager.java
...ianping/cat/consumer/metric/ProductLineConfigManager.java
+12
-7
cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricConfigManagerTest.java
...dianping/cat/consumer/metric/MetricConfigManagerTest.java
+17
-0
未找到文件。
cat-broker/src/main/java/com/dianping/cat/broker/api/page/batch/Handler.java
浏览文件 @
0ad937ed
package
com.dianping.cat.broker.api.page.batch
;
import
java.io.IOException
;
import
java.net.URLDecoder
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -67,14 +68,14 @@ public class Handler implements PageHandler<Context>, LogEnabled {
String
userIp
=
m_util
.
getRemoteIp
(
request
);
String
version
=
payload
.
getVersion
();
boolean
success
=
true
;
if
(
userIp
!=
null
)
{
if
(
"1"
.
equals
(
version
))
{
processVersion1
(
payload
,
request
,
userIp
);
}
else
if
(
"2"
.
equals
(
version
))
{
processVersion2
(
payload
,
request
,
userIp
);
}
else
{
success
=
false
;
success
=
false
;
Cat
.
logEvent
(
"InvalidVersion"
,
version
,
Event
.
SUCCESS
,
version
);
}
}
else
{
...
...
@@ -82,9 +83,9 @@ public class Handler implements PageHandler<Context>, LogEnabled {
m_logger
.
info
(
"unknown http request, x-forwarded-for:"
+
request
.
getHeader
(
"x-forwarded-for"
));
}
if
(
success
){
response
.
getWriter
().
write
(
"OK"
);
}
else
{
if
(
success
)
{
response
.
getWriter
().
write
(
"OK"
);
}
else
{
response
.
getWriter
().
write
(
"validate request!"
);
}
}
...
...
@@ -155,7 +156,7 @@ public class Handler implements PageHandler<Context>, LogEnabled {
try
{
appData
.
setTimestamp
(
Long
.
parseLong
(
items
[
0
]));
Integer
command
=
m_appConfigManager
.
getCommands
().
get
(
items
[
1
]
);
Integer
command
=
m_appConfigManager
.
getCommands
().
get
(
URLDecoder
.
decode
(
items
[
1
],
"utf-8"
)
);
if
(
command
!=
null
)
{
appData
.
setCommand
(
command
);
...
...
@@ -174,7 +175,7 @@ public class Handler implements PageHandler<Context>, LogEnabled {
m_appDataConsumer
.
enqueue
(
appData
);
Cat
.
logEvent
(
"Command"
,
String
.
valueOf
(
command
),
Event
.
SUCCESS
,
null
);
}
else
{
Cat
.
logEvent
(
"Command"
,
items
[
1
],
Event
.
SUCCESS
,
items
[
1
]);
Cat
.
logEvent
(
"Command
NotFound
"
,
items
[
1
],
Event
.
SUCCESS
,
items
[
1
]);
}
}
catch
(
Exception
e
)
{
m_logger
.
error
(
e
.
getMessage
(),
e
);
...
...
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricAnalyzer.java
浏览文件 @
0ad937ed
...
...
@@ -16,6 +16,7 @@ import com.dianping.cat.analysis.AbstractMessageAnalyzer;
import
com.dianping.cat.configuration.NetworkInterfaceManager
;
import
com.dianping.cat.consumer.advanced.dal.BusinessReport
;
import
com.dianping.cat.consumer.advanced.dal.BusinessReportDao
;
import
com.dianping.cat.consumer.company.model.entity.ProductLine
;
import
com.dianping.cat.consumer.metric.model.entity.MetricItem
;
import
com.dianping.cat.consumer.metric.model.entity.MetricReport
;
import
com.dianping.cat.consumer.metric.model.entity.Segment
;
...
...
@@ -170,7 +171,12 @@ public class MetricAnalyzer extends AbstractMessageAnalyzer<MetricReport> implem
ConfigItem
config
=
parseValue
(
status
,
data
);
if
(!
StringUtils
.
isEmpty
(
group
))
{
m_productLineConfigManager
.
insertIfNotExsit
(
group
,
domain
);
boolean
result
=
m_productLineConfigManager
.
insertIfNotExsit
(
group
,
domain
);
if
(!
result
)
{
m_logger
.
error
(
String
.
format
(
"error when insert product line info, productline %s, domain %s"
,
group
,
domain
));
}
report
=
findOrCreateReport
(
group
);
}
...
...
@@ -184,21 +190,21 @@ public class MetricAnalyzer extends AbstractMessageAnalyzer<MetricReport> implem
updateMetric
(
metricItem
,
min
,
config
.
getCount
(),
config
.
getValue
());
config
.
setTitle
(
metricName
);
if
(!
isNetwork
(
group
)
&&
!
isSystem
(
group
))
{
m_configManager
.
insertIfNotExist
(
domain
,
METRIC
,
metricName
,
config
);
ProductLine
productline
=
m_productLineConfigManager
.
queryProductLine
(
group
);
if
(
productline
!=
null
&&
productline
.
getMetricDashboard
())
{
boolean
result
=
m_configManager
.
insertIfNotExist
(
domain
,
METRIC
,
metricName
,
config
);
if
(!
result
)
{
m_logger
.
error
(
String
.
format
(
"error when insert metric config info, domain %s, metricName %s"
,
domain
,
metricName
));
}
}
}
return
0
;
}
private
boolean
isNetwork
(
String
group
)
{
return
group
.
startsWith
(
"f5"
)
||
group
.
startsWith
(
"switch"
);
}
private
boolean
isSystem
(
String
group
)
{
return
group
.
startsWith
(
"system"
);
}
private
int
processTransaction
(
MetricReport
report
,
MessageTree
tree
,
Transaction
t
)
{
int
count
=
0
;
List
<
Message
>
children
=
t
.
getChildren
();
...
...
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/MetricConfigManager.java
浏览文件 @
0ad937ed
...
...
@@ -19,10 +19,10 @@ import org.unidal.lookup.annotation.Inject;
import
org.xml.sax.SAXException
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.advanced.metric.config.entity.MetricConfig
;
import
com.dianping.cat.advanced.metric.config.entity.MetricItemConfig
;
import
com.dianping.cat.advanced.metric.config.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.company.model.entity.ProductLine
;
import
com.dianping.cat.consumer.metric.MetricAnalyzer.ConfigItem
;
import
com.dianping.cat.core.config.Config
;
import
com.dianping.cat.core.config.ConfigDao
;
...
...
@@ -102,14 +102,9 @@ public class MetricConfigManager implements Initializable {
for
(
MetricItemConfig
config
:
configs
.
values
())
{
String
domain
=
config
.
getDomain
();
String
productLine
=
m_productLineConfigManager
.
queryProductLineByDomain
(
domain
);
ProductLine
product
=
m_productLineConfigManager
.
queryProductLine
(
productLine
);
if
(
Constants
.
BROKER_SERVICE
.
equals
(
domain
))
{
unused
.
add
(
config
.
getId
());
}
if
(
"Default"
.
equals
(
productLine
))
{
unused
.
add
(
config
.
getId
());
}
if
(!
config
.
getId
().
contains
(
":Metric:"
))
{
if
(
product
==
null
||
!
product
.
isMetricDashboard
())
{
unused
.
add
(
config
.
getId
());
}
}
...
...
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/metric/ProductLineConfigManager.java
浏览文件 @
0ad937ed
...
...
@@ -152,16 +152,16 @@ public class ProductLineConfigManager implements Initializable, LogEnabled {
productLine
.
setDashboard
(
metricDashboard
);
}
public
boolean
insertIfNotExsit
(
String
line
,
String
domain
)
{
public
boolean
insertIfNotExsit
(
String
product
,
String
domain
)
{
Company
company
=
getCompany
();
if
(
company
!=
null
)
{
ProductLine
productLine
=
company
.
getProductLines
().
get
(
line
);
ProductLine
productLine
=
company
.
getProductLines
().
get
(
product
);
if
(
productLine
==
null
)
{
productLine
=
new
ProductLine
();
productLine
.
setId
(
line
);
productLine
.
setTitle
(
line
);
productLine
.
setId
(
product
);
productLine
.
setTitle
(
product
);
buildDefaultDashboard
(
productLine
,
domain
);
productLine
.
addDomain
(
new
Domain
(
domain
));
company
.
addProductLine
(
productLine
);
...
...
@@ -215,11 +215,16 @@ public class ProductLineConfigManager implements Initializable, LogEnabled {
return
domains
;
}
public
ProductLine
queryProductLine
(
String
id
)
{
return
getCompany
().
findProductLine
(
id
);
}
public
Map
<
String
,
ProductLine
>
queryMetricProductLines
()
{
Map
<
String
,
ProductLine
>
productLines
=
new
TreeMap
<
String
,
ProductLine
>();
for
(
ProductLine
line
:
getCompany
().
getProductLines
().
values
())
{
String
id
=
line
.
getId
();
if
(
id
!=
null
&&
id
.
length
()
>
0
&&
line
.
getMetricDashboard
())
{
productLines
.
put
(
id
,
line
);
}
...
...
@@ -248,7 +253,7 @@ public class ProductLineConfigManager implements Initializable, LogEnabled {
return
productLine
==
null
?
"Default"
:
productLine
;
}
public
Map
<
String
,
List
<
ProductLine
>>
queryTypeProductLines
()
{
Map
<
String
,
List
<
ProductLine
>>
productLines
=
new
LinkedHashMap
<
String
,
List
<
ProductLine
>>();
...
...
@@ -343,13 +348,13 @@ public class ProductLineConfigManager implements Initializable, LogEnabled {
config
.
setName
(
CONFIG_NAME
);
config
.
setContent
(
getCompany
().
toString
());
m_configDao
.
updateByPK
(
config
,
ConfigEntity
.
UPDATESET_FULL
);
m_domainToProductLines
=
buildDomainToProductLines
();
return
true
;
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
return
false
;
}
m_domainToProductLines
=
buildDomainToProductLines
();
}
return
true
;
}
}
\ No newline at end of file
cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/metric/MetricConfigManagerTest.java
浏览文件 @
0ad937ed
...
...
@@ -75,6 +75,23 @@ public class MetricConfigManagerTest {
Assert
.
assertEquals
(
3L
,
configs
.
get
(
item
).
longValue
());
Assert
.
assertEquals
(
1
,
configs
.
size
());
}
@Test
public
void
testInit
(){
MetricConfigManager
manager
=
new
MockMetricConfigManager
();
((
MockMetricConfigManager
)
manager
).
setConfigDao
(
new
MockConfigDao2
());
try
{
manager
.
initialize
();
}
catch
(
Exception
e
)
{
}
s_storeCount
=
0
;
manager
.
insertIfNotExist
(
"test"
,
"test"
,
"test"
,
new
ConfigItem
());
manager
.
insertIfNotExist
(
"test"
,
"test"
,
"test"
,
new
ConfigItem
());
manager
.
insertIfNotExist
(
"test1"
,
"test"
,
"test"
,
new
ConfigItem
());
manager
.
insertIfNotExist
(
"test1"
,
"test"
,
"test"
,
new
ConfigItem
());
Assert
.
assertEquals
(
s_storeCount
,
2
);
}
@Test
public
void
testInitThrowException
()
throws
Exception
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录