Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
a2db5133
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,发现更多精彩内容 >>
提交
a2db5133
编写于
5月 30, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rename sTopologyGraph class
上级
1ab7c85e
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
226 addition
and
66 deletion
+226
-66
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+6
-7
cat-home/src/main/java/com/dianping/cat/report/page/dependency/DependendencyGraphItemBuilder.java
...report/page/dependency/DependendencyGraphItemBuilder.java
+0
-16
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java
...java/com/dianping/cat/report/page/dependency/Handler.java
+4
-2
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Model.java
...n/java/com/dianping/cat/report/page/dependency/Model.java
+12
-8
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/LineGraphBuilder.java
...ng/cat/report/page/dependency/graph/LineGraphBuilder.java
+1
-1
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphBuilder.java
...at/report/page/dependency/graph/TopologyGraphBuilder.java
+5
-5
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphItemBuilder.java
...eport/page/dependency/graph/TopologyGraphItemBuilder.java
+5
-7
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java
...at/report/page/dependency/graph/TopologyGraphManager.java
+5
-5
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+14
-14
cat-home/src/main/webapp/jsp/report/dependencyGraph.jsp
cat-home/src/main/webapp/jsp/report/dependencyGraph.jsp
+1
-1
cat-home/src/test/java/com/dianping/cat/report/analyzer/OpDataCollectTest.java
...a/com/dianping/cat/report/analyzer/OpDataCollectTest.java
+173
-0
未找到文件。
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
a2db5133
...
...
@@ -32,10 +32,9 @@ import com.dianping.cat.report.graph.DefaultValueTranslater;
import
com.dianping.cat.report.graph.GraphBuilder
;
import
com.dianping.cat.report.graph.ValueTranslater
;
import
com.dianping.cat.report.page.PayloadNormalizer
;
import
com.dianping.cat.report.page.dependency.DefaultDependencyGraphItemBuilder
;
import
com.dianping.cat.report.page.dependency.DependencyGraphBuilder
;
import
com.dianping.cat.report.page.dependency.DependendencyGraphItemBuilder
;
import
com.dianping.cat.report.page.dependency.GraphManager
;
import
com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder
;
import
com.dianping.cat.report.page.dependency.graph.TopologyGraphItemBuilder
;
import
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
;
import
com.dianping.cat.report.page.externalError.EventCollectManager
;
import
com.dianping.cat.report.page.health.HistoryGraphs
;
import
com.dianping.cat.report.page.model.spi.ModelService
;
...
...
@@ -207,14 +206,14 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
EventCollectManager
.
class
).
req
(
EventDao
.
class
,
ServerConfigManager
.
class
));
all
.
add
(
C
(
DependendencyGraphItemBuilder
.
class
,
DefaultDependenc
yGraphItemBuilder
.
class
));
all
.
add
(
C
(
Topolog
yGraphItemBuilder
.
class
));
all
.
add
(
C
(
DependencyGraphBuilder
.
class
).
req
(
Dependendenc
yGraphItemBuilder
.
class
));
all
.
add
(
C
(
TopologyGraphBuilder
.
class
).
req
(
Topolog
yGraphItemBuilder
.
class
));
// model service
all
.
addAll
(
new
ServiceComponentConfigurator
().
defineComponents
());
all
.
add
(
C
(
GraphManager
.
class
).
req
(
Dependenc
yGraphBuilder
.
class
).
req
(
ModelService
.
class
,
"dependency"
));
all
.
add
(
C
(
TopologyGraphManager
.
class
).
req
(
Topolog
yGraphBuilder
.
class
).
req
(
ModelService
.
class
,
"dependency"
));
// database
all
.
add
(
C
(
JdbcDataSourceConfigurationManager
.
class
)
//
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/DependendencyGraphItemBuilder.java
已删除
100644 → 0
浏览文件 @
1ab7c85e
package
com.dianping.cat.report.page.dependency
;
import
com.dianping.cat.consumer.dependency.model.entity.Dependency
;
import
com.dianping.cat.consumer.dependency.model.entity.Index
;
import
com.dianping.cat.home.dependency.entity.Edge
;
import
com.dianping.cat.home.dependency.entity.Node
;
public
interface
DependendencyGraphItemBuilder
{
public
Node
buildNode
(
String
domain
,
Index
index
);
public
Node
buildDatabaseNode
(
String
database
);
public
Edge
buildEdge
(
String
domain
,
Dependency
dependency
);
}
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java
浏览文件 @
a2db5133
...
...
@@ -30,6 +30,8 @@ import com.dianping.cat.home.dependency.transform.DefaultJsonBuilder;
import
com.dianping.cat.report.ReportPage
;
import
com.dianping.cat.report.page.LineChart
;
import
com.dianping.cat.report.page.PayloadNormalizer
;
import
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
;
import
com.dianping.cat.report.page.dependency.graph.LineGraphBuilder
;
import
com.dianping.cat.report.page.externalError.EventCollectManager
;
import
com.dianping.cat.report.page.model.dependency.DependencyReportMerger
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
...
...
@@ -50,7 +52,7 @@ public class Handler implements PageHandler<Context> {
private
PayloadNormalizer
m_normalizePayload
;
@Inject
private
GraphManager
m_graphManager
;
private
Topology
GraphManager
m_graphManager
;
private
DependencyReport
getReport
(
Payload
payload
)
{
String
domain
=
payload
.
getDomain
();
...
...
@@ -140,7 +142,7 @@ public class Handler implements PageHandler<Context> {
DependencyGraph
graph
=
m_graphManager
.
queryGraph
(
domain
,
time
);
String
json
=
new
DefaultJsonBuilder
().
buildJson
(
graph
);
model
.
setGraph
(
json
);
model
.
set
Topology
Graph
(
json
);
}
private
int
computeMinute
(
Payload
payload
)
{
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Model.java
浏览文件 @
a2db5133
...
...
@@ -6,14 +6,18 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Set
;
import
org.unidal.web.mvc.view.annotation.EntityMeta
;
import
org.unidal.web.mvc.view.annotation.ModelMeta
;
import
com.dianping.cat.consumer.dependency.model.entity.DependencyReport
;
import
com.dianping.cat.consumer.dependency.model.entity.Segment
;
import
com.dianping.cat.home.dal.report.Event
;
import
com.dianping.cat.report.page.AbstractReportModel
;
import
com.dianping.cat.report.view.StringSortHelper
;
@ModelMeta
(
"dependecy"
)
public
class
Model
extends
AbstractReportModel
<
Action
,
Context
>
{
@EntityMeta
private
DependencyReport
m_report
;
private
Segment
m_segment
;
...
...
@@ -26,7 +30,7 @@ public class Model extends AbstractReportModel<Action, Context> {
private
Map
<
String
,
List
<
Event
>>
m_events
;
private
String
m_
g
raph
;
private
String
m_
topologyG
raph
;
private
List
<
String
>
m_indexGraph
;
...
...
@@ -124,12 +128,12 @@ public class Model extends AbstractReportModel<Action, Context> {
m_minute
=
minute
;
}
public
String
getGraph
()
{
return
m_g
raph
;
}
public
String
get
Topology
Graph
()
{
return
m_topologyG
raph
;
}
public
void
set
Graph
(
String
g
raph
)
{
m_graph
=
g
raph
;
}
public
void
set
TopologyGraph
(
String
topologyG
raph
)
{
m_topologyGraph
=
topologyG
raph
;
}
}
cat-home/src/main/java/com/dianping/cat/report/page/dependency/LineGraphBuilder.java
→
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
graph/
LineGraphBuilder.java
浏览文件 @
a2db5133
package
com.dianping.cat.report.page.dependency
;
package
com.dianping.cat.report.page.dependency
.graph
;
import
java.util.ArrayList
;
import
java.util.Date
;
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
Dependenc
yGraphBuilder.java
→
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
graph/Topolog
yGraphBuilder.java
浏览文件 @
a2db5133
package
com.dianping.cat.report.page.dependency
;
package
com.dianping.cat.report.page.dependency
.graph
;
import
org.hsqldb.lib.StringUtil
;
...
...
@@ -11,7 +11,7 @@ import com.dianping.cat.home.dependency.entity.DependencyGraph;
import
com.dianping.cat.home.dependency.entity.Edge
;
import
com.dianping.cat.home.dependency.entity.Node
;
public
class
Dependenc
yGraphBuilder
extends
BaseVisitor
{
public
class
Topolog
yGraphBuilder
extends
BaseVisitor
{
private
String
m_domain
;
...
...
@@ -19,7 +19,7 @@ public class DependencyGraphBuilder extends BaseVisitor {
private
int
m_minute
;
private
Dependendenc
yGraphItemBuilder
m_itemBuilder
;
private
Topolog
yGraphItemBuilder
m_itemBuilder
;
private
Node
mergeNode
(
Node
old
,
Node
node
)
{
if
(
old
==
null
)
{
...
...
@@ -53,12 +53,12 @@ public class DependencyGraphBuilder extends BaseVisitor {
}
}
public
Dependenc
yGraphBuilder
setGraph
(
DependencyGraph
graph
)
{
public
Topolog
yGraphBuilder
setGraph
(
DependencyGraph
graph
)
{
m_graph
=
graph
;
return
this
;
}
public
Dependenc
yGraphBuilder
setMinute
(
int
minute
)
{
public
Topolog
yGraphBuilder
setMinute
(
int
minute
)
{
m_minute
=
minute
;
return
this
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
DefaultDependenc
yGraphItemBuilder.java
→
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
graph/Topolog
yGraphItemBuilder.java
浏览文件 @
a2db5133
package
com.dianping.cat.report.page.dependency
;
package
com.dianping.cat.report.page.dependency
.graph
;
import
com.dianping.cat.consumer.dependency.model.entity.Dependency
;
import
com.dianping.cat.consumer.dependency.model.entity.Index
;
import
com.dianping.cat.home.dependency.entity.Edge
;
import
com.dianping.cat.home.dependency.entity.Node
;
public
class
DefaultDependencyGraphItemBuilder
implements
Dependendenc
yGraphItemBuilder
{
public
class
Topolog
yGraphItemBuilder
{
public
static
final
String
PROJECT
=
"project"
;
public
static
final
String
DATABASE
=
"database"
;
public
static
int
OK
=
1
;
...
...
@@ -16,7 +17,6 @@ public class DefaultDependencyGraphItemBuilder implements DependendencyGraphItem
public
static
int
ERROR
=
3
;
@Override
public
Node
buildNode
(
String
domain
,
Index
index
)
{
Node
node
=
new
Node
(
domain
);
...
...
@@ -28,7 +28,6 @@ public class DefaultDependencyGraphItemBuilder implements DependendencyGraphItem
return
node
;
}
@Override
public
Edge
buildEdge
(
String
domain
,
Dependency
dependency
)
{
Edge
edge
=
new
Edge
();
...
...
@@ -44,8 +43,7 @@ public class DefaultDependencyGraphItemBuilder implements DependendencyGraphItem
return
edge
;
}
@Override
public
Node
buildDatabaseNode
(
String
database
)
{
public
Node
buildDatabaseNode
(
String
database
)
{
Node
node
=
new
Node
(
database
);
node
.
setStatus
(
OK
);
...
...
@@ -54,6 +52,6 @@ public class DefaultDependencyGraphItemBuilder implements DependendencyGraphItem
node
.
setDes
(
""
);
node
.
setLink
(
""
);
return
node
;
}
}
}
cat-home/src/main/java/com/dianping/cat/report/page/dependency/GraphManager.java
→
cat-home/src/main/java/com/dianping/cat/report/page/dependency/
graph/Topology
GraphManager.java
浏览文件 @
a2db5133
package
com.dianping.cat.report.page.dependency
;
package
com.dianping.cat.report.page.dependency
.graph
;
import
java.util.Collection
;
import
java.util.Map
;
...
...
@@ -25,13 +25,13 @@ import com.dianping.cat.report.page.model.spi.ModelResponse;
import
com.dianping.cat.report.page.model.spi.ModelService
;
import
com.dianping.cat.report.view.DomainNavManager
;
public
class
GraphManager
implements
Initializable
,
LogEnabled
{
public
class
Topology
GraphManager
implements
Initializable
,
LogEnabled
{
@Inject
(
type
=
ModelService
.
class
,
value
=
"dependency"
)
private
ModelService
<
DependencyReport
>
m_service
;
@Inject
private
Dependenc
yGraphBuilder
m_builder
;
private
Topolog
yGraphBuilder
m_builder
;
private
Map
<
Long
,
DependencyGraph
>
m_graphs
=
new
ConcurrentHashMap
<
Long
,
DependencyGraph
>(
1000
);
...
...
@@ -85,8 +85,8 @@ public class GraphManager implements Initializable, LogEnabled {
private
Node
creatNode
(
String
domain
)
{
Node
node
=
new
Node
(
domain
);
node
.
setStatus
(
DefaultDependenc
yGraphItemBuilder
.
OK
);
node
.
setType
(
DefaultDependenc
yGraphItemBuilder
.
PROJECT
);
node
.
setStatus
(
Topolog
yGraphItemBuilder
.
OK
);
node
.
setType
(
Topolog
yGraphItemBuilder
.
PROJECT
);
node
.
setWeight
(
1
);
node
.
setDes
(
""
);
node
.
setLink
(
""
);
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
a2db5133
...
...
@@ -586,15 +586,15 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.
Dependendenc
yGraphItemBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
DefaultDependenc
yGraphItemBuilder
</implementation>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphItemBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphItemBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</implementation>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.dependency.
Dependendenc
yGraphItemBuilder
</role>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphItemBuilder
</role>
</requirement>
</requirements>
</component>
...
...
@@ -1185,11 +1185,11 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.GraphManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.GraphManager
</implementation>
<role>
com.dianping.cat.report.page.dependency.
graph.Topology
GraphManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.
graph.Topology
GraphManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</role>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
...
...
@@ -2524,7 +2524,7 @@
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.GraphManager
</role>
<role>
com.dianping.cat.report.page.dependency.
graph.Topology
GraphManager
</role>
</requirement>
</requirements>
</component>
...
...
@@ -2559,8 +2559,8 @@
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.GraphManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.GraphManager
</implementation>
<role>
com.dianping.cat.report.page.dependency.
graph.Topology
GraphManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.
graph.Topology
GraphManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
...
...
@@ -2568,13 +2568,13 @@
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</role>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
Dependenc
yGraphBuilder
</implementation>
<role>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.
graph.Topolog
yGraphBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.externalError.Handler
</role>
...
...
cat-home/src/main/webapp/jsp/report/dependencyGraph.jsp
浏览文件 @
a2db5133
...
...
@@ -105,7 +105,7 @@
$
(
'
#tab0
'
).
addClass
(
'
active
'
);
$
(
'
#leftTab0
'
).
addClass
(
'
active
'
);
var
data
=
$
{
model
.
g
raph
};
var
data
=
$
{
model
.
topologyG
raph
};
function
parse
(
data
){
var
nodes
=
data
.
nodes
;
...
...
cat-home/src/test/java/com/dianping/cat/report/analyzer/OpDataCollectTest.java
0 → 100644
浏览文件 @
a2db5133
package
com.dianping.cat.report.analyzer
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.junit.Test
;
import
org.unidal.lookup.ComponentTestCase
;
import
com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport
;
import
com.dianping.cat.consumer.heartbeat.model.entity.Period
;
import
com.dianping.cat.consumer.transaction.model.entity.Machine
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionType
;
import
com.dianping.cat.consumer.transaction.model.transform.BaseVisitor
;
import
com.dianping.cat.helper.CatString
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.report.page.model.transaction.TransactionReportMerger
;
import
com.dianping.cat.report.service.HourlyReportService
;
public
class
OpDataCollectTest
extends
ComponentTestCase
{
private
HourlyReportService
m_hourlyReportService
;
private
SimpleDateFormat
m_sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
@Test
public
void
test
()
throws
Exception
{
m_hourlyReportService
=
(
HourlyReportService
)
lookup
(
HourlyReportService
.
class
);
String
dateStr1
=
"2012-12-24 16:00"
;
String
dateStr2
=
"2013-02-14 16:00"
;
String
dateStr3
=
"2013-05-24 16:00"
;
String
[]
domains
=
getDomains
();
System
.
out
.
println
(
"Domain\tDate\tType\tTotal\tAvg\tLine95\tStd\tQPS"
);
for
(
String
domain
:
domains
)
{
buildTransactionData
(
domain
,
dateStr1
);
}
for
(
String
domain
:
domains
)
{
buildTransactionData
(
domain
,
dateStr2
);
}
for
(
String
domain
:
domains
)
{
buildTransactionData
(
domain
,
dateStr3
);
}
System
.
out
.
println
(
"Domain\tDate\tLoad\tHttp"
);
for
(
String
domain
:
domains
)
{
buildHeartbeatData
(
domain
,
dateStr1
);
}
for
(
String
domain
:
domains
)
{
buildHeartbeatData
(
domain
,
dateStr2
);
}
for
(
String
domain
:
domains
)
{
buildHeartbeatData
(
domain
,
dateStr3
);
}
}
private
void
buildHeartbeatData
(
String
domain
,
String
str
)
throws
Exception
{
Date
start
=
m_sdf
.
parse
(
str
);
Date
end
=
new
Date
(
start
.
getTime
()
+
TimeUtil
.
ONE_HOUR
);
HeartbeatReport
heartbeatReport
=
m_hourlyReportService
.
queryHeartbeatReport
(
domain
,
start
,
end
);
showHeartbeatInfo
(
domain
,
str
,
heartbeatReport
);
}
private
void
buildTransactionData
(
String
domain
,
String
str
)
throws
Exception
{
Date
start
=
m_sdf
.
parse
(
str
);
Date
end
=
new
Date
(
start
.
getTime
()
+
TimeUtil
.
ONE_HOUR
);
TransactionReport
transactionReport
=
m_hourlyReportService
.
queryTransactionReport
(
domain
,
start
,
end
);
showTransactionInfo
(
domain
,
str
,
transactionReport
);
}
private
void
showTransactionInfo
(
String
domain
,
String
str
,
TransactionReport
report
)
{
TransactionReport
temp
=
new
TransactionReport
();
TransactionReportMerger
merger
=
new
TransactionReportMerger
(
temp
);
Machine
machine
=
merger
.
mergesForAllMachine
(
report
);
report
.
addMachine
(
machine
);
new
TransactionVisitor
(
domain
,
str
).
visitTransactionReport
(
report
);
}
private
void
showHeartbeatInfo
(
String
domain
,
String
str
,
HeartbeatReport
report
)
{
HeartbeatVisitor
visitor
=
new
HeartbeatVisitor
();
visitor
.
visitHeartbeatReport
(
report
);
System
.
out
.
println
(
report
.
getDomain
()
+
"\t"
+
str
+
"\t"
+
visitor
.
computeLoad
()
+
"\t"
+
visitor
.
computeHttp
());
}
private
String
[]
getDomains
()
{
String
domains
=
"MobileMembercardMainApiWeb,MobileMembercardMainServer,MobileMembercardRecomServer,PayEngine,tuangou-paygate,DealService,TuanGouApiMobile,TuanGouRank,TuanGouRemote,TuanGouWap,TuanGouWeb,MobileApi,MLocationService,MConfigAPI,MobileRecomStore,UserBaseService,GroupService,GroupWeb,PiccenterDisplay,PiccenterStorage,PiccenterUpload,ShopServer,ShopWeb,ShoppicService,ShopSearchWeb,ReviewServer,UserService"
;
return
domains
.
split
(
","
);
}
class
HeartbeatVisitor
extends
com
.
dianping
.
cat
.
consumer
.
heartbeat
.
model
.
transform
.
BaseVisitor
{
private
List
<
Double
>
loads
=
new
ArrayList
<
Double
>();
private
List
<
Double
>
https
=
new
ArrayList
<
Double
>();
public
double
computeLoad
()
{
double
sum
=
0.0
;
for
(
Double
temp
:
loads
)
{
sum
+=
temp
;
}
return
sum
/
loads
.
size
();
}
public
double
computeHttp
()
{
double
sum
=
0.0
;
for
(
Double
temp
:
https
)
{
sum
+=
temp
;
}
return
sum
/
https
.
size
();
}
@Override
public
void
visitPeriod
(
Period
period
)
{
double
load
=
period
.
getSystemLoadAverage
();
double
http
=
period
.
getHttpThreadCount
();
loads
.
add
(
load
);
https
.
add
(
http
);
}
}
class
TransactionVisitor
extends
BaseVisitor
{
public
Set
<
String
>
ALL_TYPES
=
new
HashSet
<
String
>();
private
String
m_domain
;
private
String
m_str
;
public
TransactionVisitor
(
String
domain
,
String
str
)
{
ALL_TYPES
.
add
(
"URL"
);
ALL_TYPES
.
add
(
"Service"
);
ALL_TYPES
.
add
(
"PigeonService"
);
m_domain
=
domain
;
m_str
=
str
;
}
@Override
public
void
visitMachine
(
Machine
machine
)
{
String
ip
=
machine
.
getIp
();
if
(
CatString
.
ALL
.
equalsIgnoreCase
(
ip
))
{
super
.
visitMachine
(
machine
);
}
}
@Override
public
void
visitType
(
TransactionType
type
)
{
StringBuilder
sb
=
new
StringBuilder
(
128
);
if
(
ALL_TYPES
.
contains
(
type
.
getId
()))
{
sb
.
append
(
m_domain
).
append
(
"\t"
);
sb
.
append
(
m_str
).
append
(
"\t"
);
sb
.
append
(
type
.
getId
()).
append
(
"\t"
);
sb
.
append
(
type
.
getTotalCount
()).
append
(
"\t"
);
sb
.
append
(
type
.
getAvg
()).
append
(
"\t"
);
sb
.
append
(
type
.
getLine95Value
()).
append
(
"\t"
);
sb
.
append
(
type
.
getStd
()).
append
(
"\t"
);
sb
.
append
(
1000
*
type
.
getTotalCount
()
/
TimeUtil
.
ONE_HOUR
).
append
(
"\t"
);
System
.
out
.
println
(
sb
.
toString
());
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录