Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
78c8d25c
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,发现更多精彩内容 >>
提交
78c8d25c
编写于
7月 01, 2015
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add the test
上级
beda0ac8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
114 addition
and
15 deletion
+114
-15
cat-client/src/main/java/com/dianping/cat/log4j/CatAppender.java
...ent/src/main/java/com/dianping/cat/log4j/CatAppender.java
+1
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java
...ain/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java
+15
-15
cat-consumer/src/test/java/com/dianping/cat/consumer/performance/DumpPerformanceTest.java
...ianping/cat/consumer/performance/DumpPerformanceTest.java
+98
-0
未找到文件。
cat-client/src/main/java/com/dianping/cat/log4j/CatAppender.java
浏览文件 @
78c8d25c
package
com.dianping.cat.log4j
;
import
java.io.PrintWriter
;
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java
浏览文件 @
78c8d25c
...
...
@@ -80,25 +80,25 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer<Object> implements Log
}
@Override
p
rotected
void
process
(
MessageTree
tree
)
{
p
ublic
void
process
(
MessageTree
tree
)
{
String
domain
=
tree
.
getDomain
();
if
(
"PhoenixAgent"
.
equals
(
domain
))
{
return
;
}
MessageId
messageId
=
MessageId
.
parse
(
tree
.
getMessageId
());
if
(
messageId
.
getVersion
()
==
2
)
{
long
time
=
tree
.
getMessage
().
getTimestamp
(
);
long
fixedTime
=
time
-
time
%
(
TimeHelper
.
ONE_HOUR
);
long
idTime
=
messageId
.
getTimestamp
()
;
long
duration
=
fixedTime
-
idTime
;
if
(
duration
==
0
||
duration
==
ONE_HOUR
||
duration
==
-
ONE_HOUR
)
{
m_bucketManager
.
storeMessage
(
tree
,
messageId
);
}
else
{
m_serverStateManager
.
addPigeonTimeError
(
1
);
}
else
{
MessageId
messageId
=
MessageId
.
parse
(
tree
.
getMessageId
());
if
(
messageId
.
getVersion
()
==
2
)
{
long
time
=
tree
.
getMessage
().
getTimestamp
();
long
fixedTime
=
time
-
time
%
(
TimeHelper
.
ONE_HOUR
);
long
idTime
=
messageId
.
getTimestamp
(
);
long
duration
=
fixedTime
-
idTime
;
if
(
duration
==
0
||
duration
==
ONE_HOUR
||
duration
==
-
ONE_HOUR
)
{
m_bucketManager
.
storeMessage
(
tree
,
messageId
);
}
else
{
m_serverStateManager
.
addPigeonTimeError
(
1
);
}
}
}
}
...
...
cat-consumer/src/test/java/com/dianping/cat/consumer/performance/DumpPerformanceTest.java
0 → 100644
浏览文件 @
78c8d25c
package
com.dianping.cat.consumer.performance
;
import
org.junit.Test
;
import
org.unidal.lookup.ComponentTestCase
;
import
com.dianping.cat.analysis.MessageAnalyzer
;
import
com.dianping.cat.consumer.dump.DumpAnalyzer
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.internal.MessageIdFactory
;
import
com.dianping.cat.message.internal.MockMessageBuilder
;
import
com.dianping.cat.message.spi.MessageTree
;
import
com.dianping.cat.message.spi.internal.DefaultMessageTree
;
public
class
DumpPerformanceTest
extends
ComponentTestCase
{
private
MessageIdFactory
m_factory
=
new
MessageIdFactory
();
public
void
setUp
()
throws
Exception
{
super
.
setUp
();
m_factory
.
initialize
(
"test"
);
}
@Test
public
void
test
()
throws
Exception
{
DumpAnalyzer
analyzer
=
(
DumpAnalyzer
)
lookup
(
MessageAnalyzer
.
class
,
DumpAnalyzer
.
ID
);
MessageTree
tree
=
buildMessage
();
long
current
=
System
.
currentTimeMillis
();
long
size
=
10000000000000
l
;
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
analyzer
.
process
(
tree
);
}
System
.
out
.
println
(
"Cost "
+
(
System
.
currentTimeMillis
()
-
current
)
/
1000
);
//cost 167 -> 77
}
public
MessageTree
buildMessage
()
{
Message
message
=
new
MockMessageBuilder
()
{
@Override
public
MessageHolder
define
()
{
TransactionHolder
t
=
t
(
"WEB CLUSTER"
,
"GET"
,
112819
)
//
.
at
(
1348374838231L
)
//
.
after
(
1300
).
child
(
t
(
"QUICKIE SERVICE"
,
"gimme_stuff"
,
1571
))
//
.
after
(
100
).
child
(
e
(
"SERVICE"
,
"event1"
))
//
.
after
(
100
).
child
(
h
(
"SERVICE"
,
"heartbeat1"
))
//
.
after
(
100
).
child
(
t
(
"WEB SERVER"
,
"GET"
,
109358
)
//
.
after
(
1000
).
child
(
t
(
"SOME SERVICE"
,
"get"
,
4345
)
//
.
after
(
4000
).
child
(
t
(
"MEMCACHED"
,
"Get"
,
279
)))
//
.
mark
().
after
(
200
).
child
(
t
(
"MEMCACHED"
,
"Inc"
,
319
))
//
.
reset
().
after
(
500
).
child
(
t
(
"BIG ASS SERVICE"
,
"getThemDatar"
,
97155
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"SERVICE"
,
"getStuff"
,
3760
))
//
.
reset
().
child
(
t
(
"DATAR"
,
"findThings"
,
94537
))
//
.
after
(
200
).
child
(
t
(
"THINGIE"
,
"getMoar"
,
1435
))
//
)
//
.
after
(
100
).
mark
().
child
(
t
(
"OTHER DATA SERVICE"
,
"get"
,
4394
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
378
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
3496
))
//
)
//
.
reset
().
child
(
t
(
"FINAL DATA SERVICE"
,
"get"
,
4394
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
386
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
).
reset
().
child
(
t
(
"123123"
,
"get"
,
4394
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
386
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
).
reset
().
child
(
t
(
"123123"
,
"get"
,
4394
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
386
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
).
reset
().
child
(
t
(
"123123"
,
"get"
,
4394
)
//
.
after
(
1000
).
mark
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
386
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
.
reset
().
child
(
t
(
"MEMCACHED"
,
"Get"
,
322
))
//
)
//
)
//
;
return
t
;
}
}.
build
();
MessageTree
tree
=
new
DefaultMessageTree
();
tree
.
setDomain
(
"cat"
);
tree
.
setHostName
(
"test"
);
tree
.
setIpAddress
(
"test"
);
tree
.
setThreadGroupName
(
"test"
);
tree
.
setThreadId
(
"test"
);
tree
.
setThreadName
(
"test"
);
tree
.
setMessage
(
message
);
tree
.
setMessageId
(
m_factory
.
getNextId
());
return
tree
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录