Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
8fed0e09
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,发现更多精彩内容 >>
提交
8fed0e09
编写于
2月 09, 2015
作者:
J
jialinsun
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of code.dianpingoa.com:arch/cat
上级
17d09397
3e995427
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
36 deletion
+45
-36
cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java
...n/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java
+45
-36
未找到文件。
cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java
浏览文件 @
8fed0e09
...
...
@@ -5,7 +5,6 @@ import java.util.List;
import
org.codehaus.plexus.logging.LogEnabled
;
import
org.codehaus.plexus.logging.Logger
;
import
org.unidal.lookup.annotation.Inject
;
import
org.unidal.lookup.util.StringUtils
;
import
com.dianping.cat.analysis.AbstractMessageAnalyzer
;
import
com.dianping.cat.configuration.ServerConfigManager
;
...
...
@@ -20,6 +19,7 @@ import com.dianping.cat.message.Transaction;
import
com.dianping.cat.message.spi.MessageTree
;
import
com.dianping.cat.service.DefaultReportManager.StoragePolicy
;
import
com.dianping.cat.service.ReportManager
;
import
com.site.lookup.util.StringUtils
;
public
class
CrossAnalyzer
extends
AbstractMessageAnalyzer
<
CrossReport
>
implements
LogEnabled
{
public
static
final
String
ID
=
"cross"
;
...
...
@@ -30,15 +30,16 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
@Inject
protected
IpConvertManager
m_ipConvertManager
;
private
static
final
String
UNKNOWN
=
"Unknown"
;
private
int
m_discardLogs
=
0
;
private
int
m_errorAppName
;
public
static
final
String
DEFAULT
=
"unknown"
;
public
CrossInfo
convertCrossInfo
(
String
client
,
CrossInfo
crossInfo
)
{
String
local
Ip
=
crossInfo
.
getLocalAddress
();
String
local
Address
=
crossInfo
.
getLocalAddress
();
String
remoteAddress
=
crossInfo
.
getRemoteAddress
();
int
index
=
remoteAddress
.
indexOf
(
":"
);
if
(
index
>
0
)
{
...
...
@@ -49,10 +50,11 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
info
.
setLocalAddress
(
remoteAddress
);
String
clientPort
=
crossInfo
.
getClientPort
();
if
(
clientPort
==
null
)
{
info
.
setRemoteAddress
(
local
Ip
);
info
.
setRemoteAddress
(
local
Address
);
}
else
{
info
.
setRemoteAddress
(
local
Ip
+
":"
+
clientPort
);
info
.
setRemoteAddress
(
local
Address
+
":"
+
clientPort
);
}
info
.
setRemoteRole
(
"Pigeon.Caller"
);
info
.
setDetailType
(
"PigeonCall"
);
...
...
@@ -107,7 +109,7 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
private
CrossInfo
parsePigeonClientTransaction
(
Transaction
t
,
MessageTree
tree
)
{
CrossInfo
crossInfo
=
new
CrossInfo
();
String
local
Ip
=
tree
.
getIpAddress
();
String
local
Address
=
tree
.
getIpAddress
();
List
<
Message
>
messages
=
t
.
getChildren
();
for
(
Message
message
:
messages
)
{
...
...
@@ -126,7 +128,7 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
}
}
crossInfo
.
setLocalAddress
(
local
Ip
);
crossInfo
.
setLocalAddress
(
local
Address
);
crossInfo
.
setRemoteRole
(
"Pigeon.Server"
);
crossInfo
.
setDetailType
(
"PigeonCall"
);
return
crossInfo
;
...
...
@@ -134,7 +136,7 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
private
CrossInfo
parsePigeonServerTransaction
(
Transaction
t
,
MessageTree
tree
)
{
CrossInfo
crossInfo
=
new
CrossInfo
();
String
local
Ip
=
tree
.
getIpAddress
();
String
local
Address
=
tree
.
getIpAddress
();
List
<
Message
>
messages
=
t
.
getChildren
();
for
(
Message
message
:
messages
)
{
...
...
@@ -150,12 +152,7 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
}
}
if
(
crossInfo
.
getRemoteAddress
().
equals
(
UNKNOWN
))
{
m_discardLogs
++;
return
null
;
}
crossInfo
.
setLocalAddress
(
localIp
);
crossInfo
.
setLocalAddress
(
localAddress
);
crossInfo
.
setRemoteRole
(
"Pigeon.Client"
);
crossInfo
.
setDetailType
(
"PigeonService"
);
return
crossInfo
;
...
...
@@ -177,14 +174,19 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
private
void
processTransaction
(
CrossReport
report
,
MessageTree
tree
,
Transaction
t
)
{
CrossInfo
crossInfo
=
parseCorssTransaction
(
t
,
tree
);
if
(
crossInfo
!=
null
)
{
if
(
crossInfo
!=
null
&&
crossInfo
.
validate
()
)
{
updateCrossReport
(
report
,
t
,
crossInfo
);
String
domain
=
crossInfo
.
getApp
();
if
(
m_serverConfigManager
.
isRpcClient
(
t
.
getType
())
&&
StringUtils
.
isNotEmpty
(
domain
))
{
CrossInfo
info
=
convertCrossInfo
(
tree
.
getDomain
(),
crossInfo
);
String
targetDomain
=
crossInfo
.
getApp
();
if
(
m_serverConfigManager
.
isRpcClient
(
t
.
getType
())
&&
!
DEFAULT
.
equals
(
targetDomain
))
{
CrossInfo
serverCrossInfo
=
convertCrossInfo
(
tree
.
getDomain
(),
crossInfo
);
if
(
serverCrossInfo
!=
null
)
{
CrossReport
serverReport
=
m_reportManager
.
getHourlyReport
(
getStartTime
(),
targetDomain
,
true
);
updateServerCrossReport
(
t
,
domain
,
info
);
updateCrossReport
(
serverReport
,
t
,
serverCrossInfo
);
}
}
else
{
m_errorAppName
++;
}
...
...
@@ -215,6 +217,7 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
String
remoteIp
=
info
.
getRemoteAddress
();
String
role
=
info
.
getRemoteRole
();
String
transactionName
=
t
.
getName
();
Local
local
=
report
.
findOrCreateLocal
(
localIp
);
String
remoteId
=
remoteIp
+
":"
+
role
;
Remote
remote
=
local
.
findOrCreateRemote
(
remoteId
);
...
...
@@ -248,27 +251,25 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
name
.
setSum
(
name
.
getSum
()
+
duration
);
}
private
void
updateServerCrossReport
(
Transaction
t
,
String
domain
,
CrossInfo
info
)
{
CrossReport
report
=
m_reportManager
.
getHourlyReport
(
getStartTime
(),
domain
,
true
);
updateCrossReport
(
report
,
t
,
info
);
}
public
static
class
CrossInfo
{
private
String
m_remoteRole
=
UNKNOWN
;
private
String
m_remoteRole
;
private
String
m_
LocalAddress
=
UNKNOWN
;
private
String
m_
localAddress
;
private
String
m_
RemoteAddress
=
UNKNOWN
;
private
String
m_
remoteAddress
;
private
String
m_detailType
=
UNKNOWN
;
private
String
m_detailType
;
private
String
m_app
=
""
;
private
String
m_app
;
private
String
m_clientPort
;
public
String
getApp
()
{
return
m_app
;
if
(
StringUtils
.
isEmpty
(
m_app
))
{
return
DEFAULT
;
}
else
{
return
m_app
;
}
}
public
String
getClientPort
()
{
...
...
@@ -280,11 +281,11 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
}
public
String
getLocalAddress
()
{
return
m_
L
ocalAddress
;
return
m_
l
ocalAddress
;
}
public
String
getRemoteAddress
()
{
return
m_
R
emoteAddress
;
return
m_
r
emoteAddress
;
}
public
String
getRemoteRole
()
{
...
...
@@ -304,16 +305,24 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
}
public
void
setLocalAddress
(
String
localAddress
)
{
m_
L
ocalAddress
=
localAddress
;
m_
l
ocalAddress
=
localAddress
;
}
public
void
setRemoteAddress
(
String
remoteAddress
)
{
m_
R
emoteAddress
=
remoteAddress
;
m_
r
emoteAddress
=
remoteAddress
;
}
public
void
setRemoteRole
(
String
remoteRole
)
{
m_remoteRole
=
remoteRole
;
}
public
boolean
validate
()
{
if
(
m_localAddress
!=
null
&&
m_remoteAddress
!=
null
)
{
return
true
;
}
else
{
return
false
;
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录