Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
6c9057a6
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,发现更多精彩内容 >>
提交
6c9057a6
编写于
6月 20, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the metric analyzer
上级
23717d6c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
107 addition
and
17 deletion
+107
-17
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricAnalyzer.java
...va/com/dianping/cat/consumer/advanced/MetricAnalyzer.java
+17
-2
cat-home/src/main/java/com/dianping/cat/report/page/metric/MetricDisplay.java
...va/com/dianping/cat/report/page/metric/MetricDisplay.java
+19
-15
cat-home/src/test/java/com/dianping/cat/demo/TestABTestBusinessMessage.java
...java/com/dianping/cat/demo/TestABTestBusinessMessage.java
+71
-0
未找到文件。
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/MetricAnalyzer.java
浏览文件 @
6c9057a6
...
@@ -29,6 +29,7 @@ import com.dianping.cat.consumer.metric.model.entity.Point;
...
@@ -29,6 +29,7 @@ import com.dianping.cat.consumer.metric.model.entity.Point;
import
com.dianping.cat.consumer.metric.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.metric.model.transform.DefaultNativeBuilder
;
import
com.dianping.cat.consumer.metric.model.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.metric.model.transform.DefaultSaxParser
;
import
com.dianping.cat.consumer.metric.model.transform.DefaultXmlBuilder
;
import
com.dianping.cat.consumer.metric.model.transform.DefaultXmlBuilder
;
import
com.dianping.cat.message.Event
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.Metric
;
import
com.dianping.cat.message.Metric
;
import
com.dianping.cat.message.Transaction
;
import
com.dianping.cat.message.Transaction
;
...
@@ -107,12 +108,26 @@ public class MetricAnalyzer extends AbstractMessageAnalyzer<MetricReport> implem
...
@@ -107,12 +108,26 @@ public class MetricAnalyzer extends AbstractMessageAnalyzer<MetricReport> implem
private
Map
<
String
,
String
>
parseABtests
(
Transaction
transaction
)
{
private
Map
<
String
,
String
>
parseABtests
(
Transaction
transaction
)
{
String
abtest
=
queryAbTest
(
transaction
);
String
abtest
=
queryAbTest
(
transaction
);
return
parseABTests
(
abtest
);
return
parseABTests
(
abtest
);
}
}
private
String
queryAbTest
(
Transaction
transaction
)
{
private
String
queryAbTest
(
Transaction
transaction
)
{
return
""
;
List
<
Message
>
messages
=
transaction
.
getChildren
();
}
for
(
Message
message
:
messages
)
{
if
(
message
instanceof
Event
)
{
if
(
"URL"
.
equals
(
message
.
getType
())
&&
"ABTest"
.
equals
(
message
.
getName
()))
{
String
data
=
(
String
)
message
.
getData
();
System
.
out
.
println
(
data
);
return
data
;
}
}
}
return
""
;
}
public
Map
<
String
,
String
>
parseABTests
(
String
str
)
{
public
Map
<
String
,
String
>
parseABTests
(
String
str
)
{
Map
<
String
,
String
>
abtests
=
new
HashMap
<
String
,
String
>();
Map
<
String
,
String
>
abtests
=
new
HashMap
<
String
,
String
>();
...
...
cat-home/src/main/java/com/dianping/cat/report/page/metric/MetricDisplay.java
浏览文件 @
6c9057a6
...
@@ -35,12 +35,12 @@ public class MetricDisplay extends BaseVisitor {
...
@@ -35,12 +35,12 @@ public class MetricDisplay extends BaseVisitor {
private
static
final
String
COUNT
=
":count"
;
private
static
final
String
COUNT
=
":count"
;
private
static
final
String
AVG
=
"avg"
;
private
static
final
String
AVG
=
"avg"
;
public
List
<
LineChart
>
getLineCharts
(){
public
List
<
LineChart
>
getLineCharts
()
{
return
new
ArrayList
<
LineChart
>(
m_lineCharts
.
values
());
return
new
ArrayList
<
LineChart
>(
m_lineCharts
.
values
());
}
}
public
Set
<
String
>
getAbtests
(){
public
Set
<
String
>
getAbtests
()
{
return
m_abtests
;
return
m_abtests
;
}
}
...
@@ -51,32 +51,32 @@ public class MetricDisplay extends BaseVisitor {
...
@@ -51,32 +51,32 @@ public class MetricDisplay extends BaseVisitor {
for
(
BusinessConfig
flag
:
configs
)
{
for
(
BusinessConfig
flag
:
configs
)
{
if
(
flag
.
isShowSum
())
{
if
(
flag
.
isShowSum
())
{
String
key
=
flag
.
getMainKey
()
+
SUM
;
String
key
=
flag
.
getMainKey
()
+
SUM
;
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
}
}
if
(
flag
.
isShowCount
())
{
if
(
flag
.
isShowCount
())
{
String
key
=
flag
.
getMainKey
()
+
COUNT
;
String
key
=
flag
.
getMainKey
()
+
COUNT
;
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
}
}
if
(
flag
.
isShowAvg
())
{
if
(
flag
.
isShowAvg
())
{
String
key
=
flag
.
getMainKey
()
+
AVG
;
String
key
=
flag
.
getMainKey
()
+
AVG
;
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
m_lineCharts
.
put
(
key
,
creatLineChart
(
key
));
}
}
}
}
}
}
private
LineChart
creatLineChart
(
String
key
)
{
private
LineChart
creatLineChart
(
String
key
)
{
LineChart
lineChart
=
new
LineChart
();
LineChart
lineChart
=
new
LineChart
();
lineChart
.
setTitles
(
key
);
lineChart
.
setTitles
(
key
);
lineChart
.
setStart
(
m_start
);
lineChart
.
setStart
(
m_start
);
lineChart
.
setSize
(
60
);
lineChart
.
setSize
(
60
);
lineChart
.
setStep
(
TimeUtil
.
ONE_MINUTE
);
lineChart
.
setStep
(
TimeUtil
.
ONE_MINUTE
);
return
lineChart
;
return
lineChart
;
}
}
@Override
@Override
public
void
visitAbtest
(
Abtest
abtest
)
{
public
void
visitAbtest
(
Abtest
abtest
)
{
...
@@ -91,6 +91,10 @@ public class MetricDisplay extends BaseVisitor {
...
@@ -91,6 +91,10 @@ public class MetricDisplay extends BaseVisitor {
@Override
@Override
public
void
visitGroup
(
Group
group
)
{
public
void
visitGroup
(
Group
group
)
{
String
id
=
group
.
getName
();
String
id
=
group
.
getName
();
if
(
""
.
equals
(
id
))
{
id
=
"Default"
;
}
double
[]
sum
=
new
double
[
60
];
double
[]
sum
=
new
double
[
60
];
double
[]
avg
=
new
double
[
60
];
double
[]
avg
=
new
double
[
60
];
double
[]
count
=
new
double
[
60
];
double
[]
count
=
new
double
[
60
];
...
...
cat-home/src/test/java/com/dianping/cat/demo/TestABTestBusinessMessage.java
0 → 100644
浏览文件 @
6c9057a6
package
com.dianping.cat.demo
;
import
org.junit.Test
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.message.Event
;
import
com.dianping.cat.message.Transaction
;
import
com.dianping.cat.message.internal.DefaultMessageManager
;
import
com.dianping.cat.message.spi.internal.DefaultMessageTree
;
public
class
TestABTestBusinessMessage
{
private
static
final
String
TuanGou
=
"TuanGouWeb"
;
private
static
final
String
PayOrder
=
"PayOrder"
;
@Test
public
void
test
()
throws
Exception
{
for
(
int
i
=
0
;
i
<
1000
;
i
++)
{
Transaction
t
=
Cat
.
newTransaction
(
"URL"
,
"/index"
);
String
abtest
=
buildAbStr
(
i
);
Cat
.
logEvent
(
"URL"
,
"ABTest"
,
Event
.
SUCCESS
,
abtest
);
((
DefaultMessageManager
)
Cat
.
getManager
()).
setMetricType
(
abtest
);
DefaultMessageTree
tree
=
(
DefaultMessageTree
)
Cat
.
getManager
().
getThreadLocalMessageTree
();
tree
.
setDomain
(
TuanGou
);
t
.
complete
();
}
for
(
int
i
=
0
;
i
<
800
;
i
++)
{
Transaction
t
=
Cat
.
newTransaction
(
"URL"
,
"/detail"
);
String
abtest
=
buildAbStr
(
i
);
Cat
.
logEvent
(
"URL"
,
"ABTest"
,
Event
.
SUCCESS
,
abtest
);
((
DefaultMessageManager
)
Cat
.
getManager
()).
setMetricType
(
abtest
);
DefaultMessageTree
tree
=
(
DefaultMessageTree
)
Cat
.
getManager
().
getThreadLocalMessageTree
();
tree
.
setDomain
(
TuanGou
);
t
.
complete
();
}
for
(
int
i
=
0
;
i
<
500
;
i
++)
{
Transaction
t
=
Cat
.
newTransaction
(
"URL"
,
"/order/submitOrder"
);
String
abtest
=
buildAbStr
(
i
);
Cat
.
logEvent
(
"URL"
,
"ABTest"
,
Event
.
SUCCESS
,
abtest
);
((
DefaultMessageManager
)
Cat
.
getManager
()).
setMetricType
(
abtest
);
Cat
.
logMetricForCount
(
"order"
);
Cat
.
logMetricForSum
(
"payment.success"
,
i
);
DefaultMessageTree
tree
=
(
DefaultMessageTree
)
Cat
.
getManager
().
getThreadLocalMessageTree
();
tree
.
setDomain
(
PayOrder
);
t
.
complete
();
}
Thread
.
sleep
(
1000
);
}
private
String
buildAbStr
(
int
i
)
{
int
value
=
i
%
3
;
if
(
value
==
0
)
{
return
"1=ab:A&2=ab:A"
;
}
else
if
(
value
==
1
)
{
return
"1=ab:B&2=ab:B"
;
}
else
{
return
"1=ab:C&2=ab:"
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录