Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
fe7ea82b
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,发现更多精彩内容 >>
提交
fe7ea82b
编写于
6月 13, 2012
作者:
U
unknown
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
event graph
上级
d569ba57
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
95 addition
and
0 deletion
+95
-0
cat-home/src/main/java/com/dianping/cat/report/page/event/Handler.java
...main/java/com/dianping/cat/report/page/event/Handler.java
+92
-0
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+3
-0
未找到文件。
cat-home/src/main/java/com/dianping/cat/report/page/event/Handler.java
浏览文件 @
fe7ea82b
package
com.dianping.cat.report.page.event
;
package
com.dianping.cat.report.page.event
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletException
;
...
@@ -15,6 +18,9 @@ import com.dianping.cat.consumer.event.model.entity.EventType;
...
@@ -15,6 +18,9 @@ import com.dianping.cat.consumer.event.model.entity.EventType;
import
com.dianping.cat.hadoop.dal.Dailyreport
;
import
com.dianping.cat.hadoop.dal.Dailyreport
;
import
com.dianping.cat.hadoop.dal.DailyreportDao
;
import
com.dianping.cat.hadoop.dal.DailyreportDao
;
import
com.dianping.cat.hadoop.dal.DailyreportEntity
;
import
com.dianping.cat.hadoop.dal.DailyreportEntity
;
import
com.dianping.cat.hadoop.dal.Graph
;
import
com.dianping.cat.hadoop.dal.GraphDao
;
import
com.dianping.cat.hadoop.dal.GraphEntity
;
import
com.dianping.cat.helper.CatString
;
import
com.dianping.cat.helper.CatString
;
import
com.dianping.cat.report.ReportPage
;
import
com.dianping.cat.report.ReportPage
;
import
com.dianping.cat.report.graph.GraphBuilder
;
import
com.dianping.cat.report.graph.GraphBuilder
;
...
@@ -32,6 +38,9 @@ import com.site.web.mvc.annotation.OutboundActionMeta;
...
@@ -32,6 +38,9 @@ import com.site.web.mvc.annotation.OutboundActionMeta;
import
com.site.web.mvc.annotation.PayloadMeta
;
import
com.site.web.mvc.annotation.PayloadMeta
;
public
class
Handler
implements
PageHandler
<
Context
>
{
public
class
Handler
implements
PageHandler
<
Context
>
{
public
static
final
long
ONE_HOUR
=
3600
*
1000L
;
public
static
final
double
NOTEXIST
=-
2
;
@Inject
@Inject
private
JspViewer
m_jspViewer
;
private
JspViewer
m_jspViewer
;
...
@@ -47,6 +56,9 @@ public class Handler implements PageHandler<Context> {
...
@@ -47,6 +56,9 @@ public class Handler implements PageHandler<Context> {
@Inject
@Inject
private
DailyreportDao
dailyreportDao
;
private
DailyreportDao
dailyreportDao
;
@Inject
private
GraphDao
graphDao
;
private
StatisticsComputer
m_computer
=
new
StatisticsComputer
();
private
StatisticsComputer
m_computer
=
new
StatisticsComputer
();
private
EventName
getEventName
(
Payload
payload
)
{
private
EventName
getEventName
(
Payload
payload
)
{
...
@@ -155,6 +167,8 @@ public class Handler implements PageHandler<Context> {
...
@@ -155,6 +167,8 @@ public class Handler implements PageHandler<Context> {
}
}
private
void
buildTrendGraph
(
Model
model
,
Payload
payload
)
{
private
void
buildTrendGraph
(
Model
model
,
Payload
payload
)
{
Map
<
String
,
double
[]>
dates
=
this
.
getGraphData
(
model
,
payload
);
System
.
out
.
println
(
dates
);
Date
start
=
payload
.
getHistoryStartDate
();
Date
start
=
payload
.
getHistoryStartDate
();
Date
end
=
payload
.
getHistoryEndDate
();
Date
end
=
payload
.
getHistoryEndDate
();
String
domain
=
model
.
getDomain
();
String
domain
=
model
.
getDomain
();
...
@@ -310,4 +324,82 @@ public class Handler implements PageHandler<Context> {
...
@@ -310,4 +324,82 @@ public class Handler implements PageHandler<Context> {
model
.
setException
(
e
);
model
.
setException
(
e
);
}
}
}
}
public
Map
<
String
,
double
[]>
getGraphData
(
Model
model
,
Payload
payload
){
Date
start
=
new
Date
(
payload
.
getDate
());
Date
end
=
payload
.
getHistoryEndDate
();
String
domain
=
model
.
getDomain
();
String
type
=
payload
.
getType
();
String
name
=
payload
.
getName
();
String
ip
=
model
.
getIpAddress
();
String
queryIP
=
"All"
.
equals
(
ip
)
==
true
?
"all"
:
ip
;
List
<
Graph
>
events
=
new
ArrayList
<
Graph
>();
try
{
events
=
this
.
graphDao
.
findByDomainNameIpDuration
(
start
,
end
,
queryIP
,
domain
,
"event"
,
GraphEntity
.
READSET_FULL
);
}
catch
(
Exception
e
)
{
// TODO: handle exception
e
.
printStackTrace
();
}
Map
<
String
,
double
[]>
result
=
buildGraphDates
(
start
,
end
,
type
,
name
,
events
);
return
result
;
}
Map
<
String
,
double
[]>
buildGraphDates
(
Date
start
,
Date
end
,
String
type
,
String
name
,
List
<
Graph
>
graphs
)
{
Map
<
String
,
double
[]>
result
=
new
HashMap
<
String
,
double
[]>();
int
size
=
(
int
)
((
end
.
getTime
()
-
start
.
getTime
())
/
ONE_HOUR
);
double
[]
total_count
=
new
double
[
size
];
double
[]
failure_count
=
new
double
[
size
];
//set the default value
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
total_count
[
i
]=
NOTEXIST
;
failure_count
[
i
]=
NOTEXIST
;
}
if
(!
isEmpty
(
type
)
&&
isEmpty
(
name
))
{
for
(
Graph
graph
:
graphs
)
{
int
indexOfperiod
=
(
int
)
((
graph
.
getPeriod
().
getTime
()
-
start
.
getTime
())
/
ONE_HOUR
);
String
summaryContent
=
graph
.
getSummaryContent
();
String
[]
allLines
=
summaryContent
.
split
(
"\n"
);
for
(
int
j
=
0
;
j
<
allLines
.
length
;
j
++)
{
String
[]
records
=
allLines
[
j
].
split
(
"\t"
);
if
(
records
[
SummaryOrder
.
TYPE
.
ordinal
()].
equals
(
type
))
{
total_count
[
indexOfperiod
]
=
Double
.
valueOf
(
records
[
SummaryOrder
.
TOTAL_COUNT
.
ordinal
()]);
failure_count
[
indexOfperiod
]
=
Double
.
valueOf
(
records
[
SummaryOrder
.
FAILURE_COUNT
.
ordinal
()]);
}
}
}
}
else
if
(!
isEmpty
(
type
)
&&
!
isEmpty
(
name
))
{
for
(
Graph
graph
:
graphs
)
{
int
indexOfperiod
=
(
int
)
((
graph
.
getPeriod
().
getTime
()
-
start
.
getTime
())
/
ONE_HOUR
);
String
detailContent
=
graph
.
getDetailContent
();
String
[]
allLines
=
detailContent
.
split
(
"\n"
);
for
(
int
j
=
0
;
j
<
allLines
.
length
;
j
++)
{
String
[]
records
=
allLines
[
j
].
split
(
"\t"
);
if
(
records
[
DetailOrder
.
TYPE
.
ordinal
()].
equals
(
type
)
&&
records
[
DetailOrder
.
NAME
.
ordinal
()].
equals
(
name
))
{
total_count
[
indexOfperiod
]
=
Double
.
valueOf
(
records
[
DetailOrder
.
TOTAL_COUNT
.
ordinal
()]);
failure_count
[
indexOfperiod
]
=
Double
.
valueOf
(
records
[
DetailOrder
.
FAILURE_COUNT
.
ordinal
()]);
}
}
}
}
result
.
put
(
"total_count"
,
total_count
);
result
.
put
(
"failure_count"
,
failure_count
);
return
result
;
}
private
boolean
isEmpty
(
String
content
)
{
return
content
==
null
||
content
.
equals
(
""
);
}
public
enum
SummaryOrder
{
TYPE
,
TOTAL_COUNT
,
FAILURE_COUNT
}
public
enum
DetailOrder
{
TYPE
,
NAME
,
TOTAL_COUNT
,
FAILURE_COUNT
}
}
}
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
fe7ea82b
...
@@ -489,6 +489,9 @@
...
@@ -489,6 +489,9 @@
<requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.DailyreportDao
</role>
<role>
com.dianping.cat.hadoop.dal.DailyreportDao
</role>
</requirement>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.GraphDao
</role>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录