Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
d36a9e4f
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,发现更多精彩内容 >>
提交
d36a9e4f
编写于
6月 12, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the topology graph manager
上级
637c6644
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
78 addition
and
31 deletion
+78
-31
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+1
-1
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java
...at/report/page/dependency/graph/TopologyGraphManager.java
+62
-30
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+15
-0
未找到文件。
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
d36a9e4f
...
...
@@ -228,7 +228,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
addAll
(
new
ServiceComponentConfigurator
().
defineComponents
());
all
.
add
(
C
(
TopologyGraphManager
.
class
).
req
(
TopologyGraphBuilder
.
class
,
ServerConfigManager
.
class
)
//
.
req
(
TopologyGraphConfigManager
.
class
).
req
(
ModelService
.
class
,
"dependency"
));
.
req
(
TopologyGraphConfigManager
.
class
,
TopologyGraphDao
.
class
).
req
(
ModelService
.
class
,
"dependency"
));
// database
all
.
add
(
C
(
JdbcDataSourceConfigurationManager
.
class
)
//
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java
浏览文件 @
d36a9e4f
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.dependency.graph;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -13,6 +14,7 @@ import org.codehaus.plexus.logging.LogEnabled;
import
org.codehaus.plexus.logging.Logger
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.dal.jdbc.DalException
;
import
org.unidal.helper.Threads
;
import
org.unidal.helper.Threads.Task
;
import
org.unidal.lookup.annotation.Inject
;
...
...
@@ -21,11 +23,14 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.configuration.ServerConfigManager
;
import
com.dianping.cat.consumer.dependency.model.entity.DependencyReport
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.home.dal.report.TopologyGraphDao
;
import
com.dianping.cat.home.dal.report.TopologyGraphEntity
;
import
com.dianping.cat.home.dependency.config.entity.Domain
;
import
com.dianping.cat.home.dependency.config.entity.ProductLine
;
import
com.dianping.cat.home.dependency.graph.entity.Edge
;
import
com.dianping.cat.home.dependency.graph.entity.Node
;
import
com.dianping.cat.home.dependency.graph.entity.TopologyGraph
;
import
com.dianping.cat.home.dependency.graph.transform.DefaultNativeParser
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.Transaction
;
import
com.dianping.cat.report.page.dependency.dashboard.ProductLineDashboard
;
...
...
@@ -34,7 +39,6 @@ import com.dianping.cat.report.page.model.spi.ModelPeriod;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.ModelResponse
;
import
com.dianping.cat.report.page.model.spi.ModelService
;
import
com.dianping.cat.report.task.dependency.DependencyReportBuilder
;
import
com.dianping.cat.report.view.DomainNavManager
;
public
class
TopologyGraphManager
implements
Initializable
,
LogEnabled
{
...
...
@@ -51,29 +55,15 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
@Inject
private
ServerConfigManager
m_manager
;
@Inject
private
TopologyGraphDao
m_topologyGraphDao
;
private
Map
<
Long
,
TopologyGraph
>
m_topologyGraphs
=
new
ConcurrentHashMap
<
Long
,
TopologyGraph
>(
360
);
private
Logger
m_logger
;
private
static
final
String
DEPENDENCY
=
"Dependency"
;
public
ProductLineDashboard
buildProductLineGraph
(
String
productLine
,
long
time
)
{
TopologyGraph
topologyGraph
=
queryGraph
(
time
);
ProductLineDashboard
dashboard
=
new
ProductLineDashboard
(
productLine
);
List
<
String
>
domains
=
m_configManger
.
queryProductLineDomains
(
productLine
);
if
(
topologyGraph
!=
null
)
{
for
(
String
domain
:
domains
)
{
Node
node
=
topologyGraph
.
findNode
(
domain
);
if
(
node
!=
null
)
{
dashboard
.
addNode
(
m_graphBuilder
.
cloneNode
(
node
));
}
}
}
return
dashboard
;
}
public
ProductLinesDashboard
buildDashboardGraph
(
long
time
)
{
TopologyGraph
topologyGraph
=
queryGraph
(
time
);
ProductLinesDashboard
dashboardGraph
=
new
ProductLinesDashboard
();
...
...
@@ -109,6 +99,23 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
return
dashboardGraph
;
}
public
ProductLineDashboard
buildProductLineGraph
(
String
productLine
,
long
time
)
{
TopologyGraph
topologyGraph
=
queryGraph
(
time
);
ProductLineDashboard
dashboard
=
new
ProductLineDashboard
(
productLine
);
List
<
String
>
domains
=
m_configManger
.
queryProductLineDomains
(
productLine
);
if
(
topologyGraph
!=
null
)
{
for
(
String
domain
:
domains
)
{
Node
node
=
topologyGraph
.
findNode
(
domain
);
if
(
node
!=
null
)
{
dashboard
.
addNode
(
m_graphBuilder
.
cloneNode
(
node
));
}
}
}
return
dashboard
;
}
public
TopologyGraph
buildTopologyGraph
(
String
domain
,
long
time
)
{
TopologyGraph
all
=
queryGraph
(
time
);
TopologyGraph
topylogyGraph
=
new
TopologyGraph
();
...
...
@@ -160,7 +167,44 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
return
topylogyGraph
;
}
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
}
@Override
public
void
initialize
()
throws
InitializationException
{
// if(!m_manager.isLocalMode()&&m_manager.isJobMachine()){
Threads
.
forGroup
(
"Cat"
).
start
(
new
Reload
());
// }
}
private
TopologyGraph
queryGraph
(
long
time
)
{
ModelPeriod
period
=
ModelPeriod
.
getByTime
(
time
);
if
(
period
.
isHistorical
())
{
return
queryGraphFromDB
(
time
);
}
else
{
return
queryGraphFromMemory
(
time
);
}
}
private
TopologyGraph
queryGraphFromDB
(
long
time
)
{
try
{
com
.
dianping
.
cat
.
home
.
dal
.
report
.
TopologyGraph
topologyGraph
=
m_topologyGraphDao
.
findByPeriod
(
new
Date
(
time
),
TopologyGraphEntity
.
READSET_FULL
);
if
(
topologyGraph
!=
null
)
{
byte
[]
content
=
topologyGraph
.
getContent
();
return
DefaultNativeParser
.
parse
(
content
);
}
}
catch
(
DalException
e
)
{
Cat
.
logError
(
e
);
}
return
null
;
}
private
TopologyGraph
queryGraphFromMemory
(
long
time
)
{
TopologyGraph
graph
=
m_topologyGraphs
.
get
(
time
);
long
current
=
System
.
currentTimeMillis
();
long
minute
=
current
-
current
%
TimeUtil
.
ONE_MINUTE
;
...
...
@@ -175,18 +219,6 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
return
graph
;
}
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
}
@Override
public
void
initialize
()
throws
InitializationException
{
// if(!m_manager.isLocalMode()&&m_manager.isJobMachine()){
Threads
.
forGroup
(
"Cat"
).
start
(
new
Reload
());
// }
}
private
class
Reload
implements
Task
{
private
void
buildGraph
(
List
<
DependencyReport
>
reports
)
{
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
d36a9e4f
...
...
@@ -1270,6 +1270,9 @@
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency
</role-hint>
...
...
@@ -2681,6 +2684,9 @@
<requirement>
<role>
com.dianping.cat.configuration.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -2691,6 +2697,15 @@
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
<implementation>
com.dianping.cat.home.dal.report.TopologyGraphDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.dependency.JspViewer
</implementation>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录