Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
4329c214
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,发现更多精彩内容 >>
提交
4329c214
编写于
6月 12, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refator topograph model
上级
9e436ef6
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
136 addition
and
135 deletion
+136
-135
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/DependencyAnalyzer.java
...om/dianping/cat/consumer/advanced/DependencyAnalyzer.java
+19
-15
cat-home/pom.xml
cat-home/pom.xml
+2
-2
cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java
...java/com/dianping/cat/build/UserDatabaseConfigurator.java
+2
-2
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java
...java/com/dianping/cat/report/page/dependency/Handler.java
+13
-13
cat-home/src/main/java/com/dianping/cat/report/page/dependency/dashboard/ProductLineDashboard.java
...eport/page/dependency/dashboard/ProductLineDashboard.java
+6
-6
cat-home/src/main/java/com/dianping/cat/report/page/dependency/dashboard/ProductLinesDashboard.java
...port/page/dependency/dashboard/ProductLinesDashboard.java
+12
-12
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphBuilder.java
...at/report/page/dependency/graph/TopologyGraphBuilder.java
+14
-14
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphItemBuilder.java
...eport/page/dependency/graph/TopologyGraphItemBuilder.java
+10
-10
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java
...at/report/page/dependency/graph/TopologyGraphManager.java
+18
-18
cat-home/src/main/java/com/dianping/cat/system/SystemContext.java
.../src/main/java/com/dianping/cat/system/SystemContext.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/alarm/Handler.java
...main/java/com/dianping/cat/system/page/alarm/Handler.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/alarm/RuleManager.java
.../java/com/dianping/cat/system/page/alarm/RuleManager.java
+3
-3
cat-home/src/main/java/com/dianping/cat/system/page/alarm/ScheduledManager.java
.../com/dianping/cat/system/page/alarm/ScheduledManager.java
+3
-3
cat-home/src/main/java/com/dianping/cat/system/page/login/Handler.java
...main/java/com/dianping/cat/system/page/login/Handler.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/login/service/Session.java
...a/com/dianping/cat/system/page/login/service/Session.java
+1
-1
cat-home/src/main/java/com/dianping/cat/system/page/login/service/SessionManager.java
...ianping/cat/system/page/login/service/SessionManager.java
+3
-3
cat-home/src/main/resources/META-INF/dal/jdbc/user-dal.xml
cat-home/src/main/resources/META-INF/dal/jdbc/user-dal.xml
+1
-1
cat-home/src/main/resources/META-INF/dal/model/topology-graph-codegen.xml
...n/resources/META-INF/dal/model/topology-graph-codegen.xml
+4
-4
cat-home/src/main/resources/META-INF/dal/model/topology-graph-model.xml
...ain/resources/META-INF/dal/model/topology-graph-model.xml
+6
-6
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+7
-7
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
+0
-3
cat-home/src/main/webapp/jsp/report/dependency/dependencyTopologyGraph.jsp
.../webapp/jsp/report/dependency/dependencyTopologyGraph.jsp
+2
-2
cat-home/src/test/resources/com/dianping/cat/report/page/dependency/topology-graph.xml
...om/dianping/cat/report/page/dependency/topology-graph.xml
+7
-7
未找到文件。
cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/advanced/DependencyAnalyzer.java
浏览文件 @
4329c214
...
...
@@ -2,11 +2,11 @@ package com.dianping.cat.consumer.advanced;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.codehaus.plexus.logging.LogEnabled
;
import
org.codehaus.plexus.logging.Logger
;
...
...
@@ -51,7 +51,7 @@ public class DependencyAnalyzer extends AbstractMessageAnalyzer<DependencyReport
@Inject
private
DatabaseParser
m_parser
;
private
Map
<
String
,
DependencyReport
>
m_reports
=
new
HashMap
<
String
,
DependencyReport
>();
private
Map
<
String
,
DependencyReport
>
m_reports
=
new
Concurrent
HashMap
<
String
,
DependencyReport
>();
private
Set
<
String
>
m_types
=
new
HashSet
<
String
>(
Arrays
.
asList
(
"URL"
,
"SQL"
,
"Call"
,
"PigeonCall"
,
"Service"
,
"PigeonService"
));
...
...
@@ -308,6 +308,23 @@ public class DependencyAnalyzer extends AbstractMessageAnalyzer<DependencyReport
Date
period
=
new
Date
(
m_startTime
);
String
ip
=
NetworkInterfaceManager
.
INSTANCE
.
getLocalHostAddress
();
try
{
Task
task
=
m_taskDao
.
createLocal
();
task
.
setCreationDate
(
new
Date
());
task
.
setProducer
(
""
);
task
.
setReportDomain
(
"Cat"
);
task
.
setReportName
(
ID
);
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
task
.
setTaskType
(
0
);
m_taskDao
.
insert
(
task
);
System
.
out
.
println
(
task
);
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
for
(
DependencyReport
report
:
m_reports
.
values
())
{
try
{
Report
r
=
m_reportDao
.
createLocal
();
...
...
@@ -320,20 +337,7 @@ public class DependencyAnalyzer extends AbstractMessageAnalyzer<DependencyReport
r
.
setIp
(
ip
);
r
.
setType
(
1
);
r
.
setContent
(
xml
);
m_reportDao
.
insert
(
r
);
m_reportDao
.
insert
(
r
);
Task
task
=
m_taskDao
.
createLocal
();
task
.
setCreationDate
(
new
Date
());
task
.
setProducer
(
""
);
task
.
setReportDomain
(
domain
);
task
.
setReportName
(
ID
);
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
task
.
setTaskType
(
0
);
m_taskDao
.
insert
(
task
);
}
catch
(
Throwable
e
)
{
t
.
setStatus
(
e
);
Cat
.
getProducer
().
logError
(
e
);
...
...
cat-home/pom.xml
浏览文件 @
4329c214
...
...
@@ -151,7 +151,7 @@
</webResources>
</configuration>
</plugin>
<!--
<plugin>
<plugin>
<groupId>
org.unidal.maven.plugins
</groupId>
<artifactId>
codegen-maven-plugin
</artifactId>
<version>
2.0.5
</version>
...
...
@@ -193,7 +193,7 @@
</configuration>
</execution>
</executions>
</plugin>
-->
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
...
...
cat-home/src/main/java/com/dianping/cat/build/UserDatabaseConfigurator.java
浏览文件 @
4329c214
...
...
@@ -13,8 +13,8 @@ final class UserDatabaseConfigurator extends AbstractJdbcResourceConfigurator {
all
.
add
(
defineJdbcDataSourceComponent
(
"user"
,
"com.mysql.jdbc.Driver"
,
"jdbc:mysql://192.168.8.44:3306/hawk"
,
"hawk"
,
"hawk"
,
"<![CDATA[useUnicode=true&autoReconnect=true]]>"
));
defineSimpleTableProviderComponents
(
all
,
"user"
,
com
.
d
ai
nping
.
cat
.
home
.
dal
.
user
.
_INDEX
.
getEntityClasses
());
defineDaoComponents
(
all
,
com
.
d
ai
nping
.
cat
.
home
.
dal
.
user
.
_INDEX
.
getDaoClasses
());
defineSimpleTableProviderComponents
(
all
,
"user"
,
com
.
d
ia
nping
.
cat
.
home
.
dal
.
user
.
_INDEX
.
getEntityClasses
());
defineDaoComponents
(
all
,
com
.
d
ia
nping
.
cat
.
home
.
dal
.
user
.
_INDEX
.
getDaoClasses
());
return
all
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/Handler.java
浏览文件 @
4329c214
...
...
@@ -32,8 +32,8 @@ import com.dianping.cat.helper.CatString;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.home.dal.report.Event
;
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.
Topology
Edge
;
import
com.dianping.cat.home.dependency.graph.entity.
Topology
Node
;
import
com.dianping.cat.home.dependency.graph.entity.TopologyGraph
;
import
com.dianping.cat.home.dependency.graph.transform.DefaultJsonBuilder
;
import
com.dianping.cat.report.ReportPage
;
...
...
@@ -116,7 +116,7 @@ public class Handler implements PageHandler<Context> {
graph
.
setDes
(
graph
.
getDes
()
+
problemInfo
);
}
for
(
Node
node
:
graph
.
getNodes
().
values
())
{
for
(
Topology
Node
node
:
graph
.
getNodes
().
values
())
{
if
(
node
.
getType
().
equals
(
GraphConstrant
.
PROJECT
))
{
node
.
setLink
(
buildLink
(
payload
,
model
,
node
.
getId
()));
...
...
@@ -134,7 +134,7 @@ public class Handler implements PageHandler<Context> {
List
<
Event
>
eventList
=
entry
.
getValue
();
for
(
Event
event
:
eventList
)
{
Node
node
=
graph
.
find
Node
(
event
.
getDomain
());
TopologyNode
node
=
graph
.
findTopology
Node
(
event
.
getDomain
());
if
(
node
!=
null
)
{
if
(!
m_nodes
.
contains
(
node
.
getId
()))
{
...
...
@@ -213,7 +213,7 @@ public class Handler implements PageHandler<Context> {
m_dateFormat
.
format
(
new
Date
(
payload
.
getDate
())));
}
private
void
buildNodeZabbixInfo
(
Node
node
,
Model
model
,
Payload
payload
)
{
private
void
buildNodeZabbixInfo
(
Topology
Node
node
,
Model
model
,
Payload
payload
)
{
Date
reportTime
=
new
Date
(
payload
.
getDate
()
+
TimeUtil
.
ONE_MINUTE
*
model
.
getMinute
());
String
domain
=
node
.
getId
();
List
<
Event
>
events
=
m_eventManager
.
queryEvents
(
domain
,
reportTime
);
...
...
@@ -235,7 +235,7 @@ public class Handler implements PageHandler<Context> {
}
}
private
void
buildNodeExceptionInfo
(
Node
node
,
Model
model
,
Payload
payload
)
{
private
void
buildNodeExceptionInfo
(
Topology
Node
node
,
Model
model
,
Payload
payload
)
{
String
domain
=
node
.
getId
();
if
(
node
.
getStatus
()
!=
GraphConstrant
.
OK
)
{
String
exceptionInfo
=
buildProblemInfo
(
domain
,
payload
);
...
...
@@ -365,10 +365,10 @@ public class Handler implements PageHandler<Context> {
break
;
case
DASHBOARD:
ProductLinesDashboard
dashboardGraph
=
m_graphManager
.
buildDashboardGraph
(
reportTime
.
getTime
());
Map
<
String
,
List
<
Node
>>
dashboardNodes
=
dashboardGraph
.
getNodes
();
Map
<
String
,
List
<
Topology
Node
>>
dashboardNodes
=
dashboardGraph
.
getNodes
();
for
(
Entry
<
String
,
List
<
Node
>>
entry
:
dashboardNodes
.
entrySet
())
{
for
(
Node
node
:
entry
.
getValue
())
{
for
(
Entry
<
String
,
List
<
Topology
Node
>>
entry
:
dashboardNodes
.
entrySet
())
{
for
(
Topology
Node
node
:
entry
.
getValue
())
{
buildNodeZabbixInfo
(
node
,
model
,
payload
);
}
}
...
...
@@ -386,9 +386,9 @@ public class Handler implements PageHandler<Context> {
}
ProductLineDashboard
productLineGraph
=
m_graphManager
.
buildProductLineGraph
(
productLine
,
reportTime
.
getTime
());
List
<
Node
>
productLineNodes
=
productLineGraph
.
getNodes
();
List
<
Topology
Node
>
productLineNodes
=
productLineGraph
.
getNodes
();
for
(
Node
node
:
productLineNodes
)
{
for
(
Topology
Node
node
:
productLineNodes
)
{
buildNodeZabbixInfo
(
node
,
model
,
payload
);
buildNodeExceptionInfo
(
node
,
model
,
payload
);
}
...
...
@@ -445,9 +445,9 @@ public class Handler implements PageHandler<Context> {
private
Map
<
String
,
List
<
String
>>
parseDependencies
(
TopologyGraph
graph
)
{
Map
<
String
,
List
<
String
>>
dependencies
=
new
HashMap
<
String
,
List
<
String
>>();
Map
<
String
,
Edge
>
edges
=
graph
.
getEdges
();
Map
<
String
,
Topology
Edge
>
edges
=
graph
.
getEdges
();
for
(
Edge
temp
:
edges
.
values
())
{
for
(
Topology
Edge
temp
:
edges
.
values
())
{
String
type
=
temp
.
getType
();
String
target
=
temp
.
getTarget
();
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/dashboard/ProductLineDashboard.java
浏览文件 @
4329c214
...
...
@@ -3,7 +3,7 @@ package com.dianping.cat.report.page.dependency.dashboard;
import
java.util.ArrayList
;
import
java.util.List
;
import
com.dianping.cat.home.dependency.graph.entity.Node
;
import
com.dianping.cat.home.dependency.graph.entity.
Topology
Node
;
import
com.dianping.cat.report.page.dependency.graph.GraphConstrant
;
import
com.google.gson.Gson
;
...
...
@@ -17,19 +17,19 @@ public class ProductLineDashboard {
private
String
des
;
private
List
<
Node
>
nodes
=
new
ArrayList
<
Node
>();
private
List
<
TopologyNode
>
nodes
=
new
ArrayList
<
Topology
Node
>();
public
ProductLineDashboard
(
String
productLine
)
{
id
=
productLine
;
}
public
ProductLineDashboard
addNode
(
Node
node
)
{
public
ProductLineDashboard
addNode
(
Topology
Node
node
)
{
nodes
.
add
(
node
);
return
this
;
}
public
List
<
Node
>
getNodes
()
{
public
List
<
Topology
Node
>
getNodes
()
{
return
nodes
;
}
...
...
@@ -65,11 +65,11 @@ public class ProductLineDashboard {
this
.
des
=
des
;
}
public
List
<
Node
>
getPoints
()
{
public
List
<
Topology
Node
>
getPoints
()
{
return
nodes
;
}
public
void
setPoints
(
List
<
Node
>
points
)
{
public
void
setPoints
(
List
<
Topology
Node
>
points
)
{
this
.
nodes
=
points
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/dashboard/ProductLinesDashboard.java
浏览文件 @
4329c214
...
...
@@ -5,17 +5,17 @@ import java.util.LinkedHashMap;
import
java.util.List
;
import
java.util.Map
;
import
com.dianping.cat.home.dependency.graph.entity.
Nod
e
;
import
com.dianping.cat.home.dependency.graph.entity.
Edg
e
;
import
com.dianping.cat.home.dependency.graph.entity.
TopologyEdg
e
;
import
com.dianping.cat.home.dependency.graph.entity.
TopologyNod
e
;
import
com.google.gson.Gson
;
public
class
ProductLinesDashboard
{
private
Map
<
String
,
List
<
Node
>>
productLines
=
new
LinkedHashMap
<
String
,
List
<
Node
>>();
private
Map
<
String
,
List
<
TopologyNode
>>
productLines
=
new
LinkedHashMap
<
String
,
List
<
Topology
Node
>>();
private
List
<
Edge
>
edges
=
new
ArrayList
<
Edge
>();
private
List
<
TopologyEdge
>
edges
=
new
ArrayList
<
Topology
Edge
>();
private
transient
Map
<
String
,
Node
>
temp
=
new
LinkedHashMap
<
String
,
Node
>();
private
transient
Map
<
String
,
TopologyNode
>
temp
=
new
LinkedHashMap
<
String
,
Topology
Node
>();
public
String
toJson
()
{
String
str
=
new
Gson
().
toJson
(
this
);
...
...
@@ -24,15 +24,15 @@ public class ProductLinesDashboard {
return
str
;
}
public
boolean
exsit
(
Node
node
)
{
public
boolean
exsit
(
Topology
Node
node
)
{
return
temp
.
containsKey
(
node
.
getId
());
}
public
ProductLinesDashboard
addNode
(
String
productLine
,
Node
node
)
{
List
<
Node
>
nodeList
=
productLines
.
get
(
productLine
);
public
ProductLinesDashboard
addNode
(
String
productLine
,
Topology
Node
node
)
{
List
<
Topology
Node
>
nodeList
=
productLines
.
get
(
productLine
);
if
(
nodeList
==
null
)
{
nodeList
=
new
ArrayList
<
Node
>();
nodeList
=
new
ArrayList
<
Topology
Node
>();
productLines
.
put
(
productLine
,
nodeList
);
}
...
...
@@ -40,16 +40,16 @@ public class ProductLinesDashboard {
return
this
;
}
public
ProductLinesDashboard
addEdge
(
Edge
edge
)
{
public
ProductLinesDashboard
addEdge
(
Topology
Edge
edge
)
{
edges
.
add
(
edge
);
return
this
;
}
public
Map
<
String
,
List
<
Node
>>
getNodes
()
{
public
Map
<
String
,
List
<
Topology
Node
>>
getNodes
()
{
return
productLines
;
}
public
List
<
Edge
>
getEdges
()
{
public
List
<
Topology
Edge
>
getEdges
()
{
return
edges
;
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphBuilder.java
浏览文件 @
4329c214
...
...
@@ -15,8 +15,8 @@ import com.dianping.cat.consumer.dependency.model.entity.Index;
import
com.dianping.cat.consumer.dependency.model.entity.Segment
;
import
com.dianping.cat.consumer.dependency.model.transform.BaseVisitor
;
import
com.dianping.cat.helper.TimeUtil
;
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.
Topology
Edge
;
import
com.dianping.cat.home.dependency.graph.entity.
Topology
Node
;
import
com.dianping.cat.home.dependency.graph.entity.TopologyGraph
;
public
class
TopologyGraphBuilder
extends
BaseVisitor
{
...
...
@@ -33,12 +33,12 @@ public class TopologyGraphBuilder extends BaseVisitor {
private
Set
<
String
>
m_pigeonServices
=
new
HashSet
<
String
>(
Arrays
.
asList
(
"Service"
,
"PigeonService"
,
"PigeonServer"
));
public
Node
createNode
(
String
domain
)
{
public
Topology
Node
createNode
(
String
domain
)
{
return
m_itemBuilder
.
createNode
(
domain
);
}
public
Node
cloneNode
(
Node
node
)
{
Node
result
=
new
Node
();
public
TopologyNode
cloneNode
(
Topology
Node
node
)
{
TopologyNode
result
=
new
Topology
Node
();
result
.
setDes
(
node
.
getDes
());
result
.
setId
(
node
.
getId
());
...
...
@@ -49,8 +49,8 @@ public class TopologyGraphBuilder extends BaseVisitor {
return
result
;
}
public
Edge
cloneEdge
(
Edge
edge
)
{
Edge
result
=
new
Edge
();
public
TopologyEdge
cloneEdge
(
Topology
Edge
edge
)
{
TopologyEdge
result
=
new
Topology
Edge
();
result
.
setDes
(
edge
.
getDes
());
result
.
setKey
(
edge
.
getKey
());
...
...
@@ -90,7 +90,7 @@ public class TopologyGraphBuilder extends BaseVisitor {
}
}
private
Edge
mergeEdge
(
Edge
old
,
Edge
edge
)
{
private
TopologyEdge
mergeEdge
(
TopologyEdge
old
,
Topology
Edge
edge
)
{
if
(
old
==
null
)
{
return
edge
;
}
else
{
...
...
@@ -105,7 +105,7 @@ public class TopologyGraphBuilder extends BaseVisitor {
}
}
private
Node
mergeNode
(
Node
old
,
Node
node
)
{
private
TopologyNode
mergeNode
(
TopologyNode
old
,
Topology
Node
node
)
{
if
(
old
==
null
)
{
return
node
;
}
else
{
...
...
@@ -130,9 +130,9 @@ public class TopologyGraphBuilder extends BaseVisitor {
String
type
=
dependency
.
getType
();
// pigeonServer is no use
if
(!
m_pigeonServices
.
contains
(
type
))
{
Edge
edge
=
m_itemBuilder
.
buildEdge
(
m_domain
,
dependency
);
Topology
Edge
edge
=
m_itemBuilder
.
buildEdge
(
m_domain
,
dependency
);
TopologyGraph
graph
=
findOrCreateGraph
();
Edge
old
=
graph
.
find
Edge
(
edge
.
getKey
());
TopologyEdge
old
=
graph
.
findTopology
Edge
(
edge
.
getKey
());
if
(
old
!=
null
)
{
System
.
out
.
println
(
old
);
...
...
@@ -140,7 +140,7 @@ public class TopologyGraphBuilder extends BaseVisitor {
graph
.
getEdges
().
put
(
edge
.
getKey
(),
mergeEdge
(
old
,
edge
));
if
(
"Database"
.
equals
(
type
))
{
String
target
=
dependency
.
getTarget
();
Node
nodeOld
=
graph
.
find
Node
(
target
);
TopologyNode
nodeOld
=
graph
.
findTopology
Node
(
target
);
graph
.
getNodes
().
put
(
target
,
mergeNode
(
nodeOld
,
m_itemBuilder
.
createDatabaseNode
(
target
)));
}
...
...
@@ -157,8 +157,8 @@ public class TopologyGraphBuilder extends BaseVisitor {
@Override
public
void
visitIndex
(
Index
index
)
{
TopologyGraph
graph
=
findOrCreateGraph
();
Node
node
=
m_itemBuilder
.
buildNode
(
m_domain
,
index
);
Node
old
=
graph
.
find
Node
(
node
.
getId
());
Topology
Node
node
=
m_itemBuilder
.
buildNode
(
m_domain
,
index
);
TopologyNode
old
=
graph
.
findTopology
Node
(
node
.
getId
());
graph
.
getNodes
().
put
(
node
.
getId
(),
mergeNode
(
old
,
node
));
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphItemBuilder.java
浏览文件 @
4329c214
...
...
@@ -5,8 +5,8 @@ import org.unidal.tuple.Pair;
import
com.dianping.cat.consumer.dependency.model.entity.Dependency
;
import
com.dianping.cat.consumer.dependency.model.entity.Index
;
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.
Topology
Edge
;
import
com.dianping.cat.home.dependency.graph.entity.
Topology
Node
;
public
class
TopologyGraphItemBuilder
{
...
...
@@ -19,8 +19,8 @@ public class TopologyGraphItemBuilder {
private
static
final
String
PROJECT
=
GraphConstrant
.
PROJECT
;
public
Node
createDatabaseNode
(
String
database
)
{
Node
node
=
new
Node
(
database
);
public
Topology
Node
createDatabaseNode
(
String
database
)
{
TopologyNode
node
=
new
Topology
Node
(
database
);
node
.
setStatus
(
OK
);
node
.
setType
(
DATABASE
);
...
...
@@ -28,8 +28,8 @@ public class TopologyGraphItemBuilder {
return
node
;
}
public
Edge
buildEdge
(
String
domain
,
Dependency
dependency
)
{
Edge
edge
=
new
Edge
();
public
Topology
Edge
buildEdge
(
String
domain
,
Dependency
dependency
)
{
TopologyEdge
edge
=
new
Topology
Edge
();
edge
.
setType
(
dependency
.
getType
());
edge
.
setKey
(
dependency
.
getType
()
+
':'
+
domain
+
':'
+
dependency
.
getTarget
());
...
...
@@ -48,8 +48,8 @@ public class TopologyGraphItemBuilder {
return
edge
;
}
public
Node
createNode
(
String
domain
)
{
Node
node
=
new
Node
(
domain
);
public
Topology
Node
createNode
(
String
domain
)
{
TopologyNode
node
=
new
Topology
Node
(
domain
);
node
.
setStatus
(
OK
);
node
.
setType
(
PROJECT
);
...
...
@@ -57,8 +57,8 @@ public class TopologyGraphItemBuilder {
return
node
;
}
public
Node
buildNode
(
String
domain
,
Index
index
)
{
Node
node
=
new
Node
(
domain
);
public
Topology
Node
buildNode
(
String
domain
,
Index
index
)
{
TopologyNode
node
=
new
Topology
Node
(
domain
);
node
.
setType
(
PROJECT
);
node
.
setWeight
(
1
);
...
...
cat-home/src/main/java/com/dianping/cat/report/page/dependency/graph/TopologyGraphManager.java
浏览文件 @
4329c214
...
...
@@ -27,8 +27,8 @@ 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.
Topology
Edge
;
import
com.dianping.cat.home.dependency.graph.entity.
Topology
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
;
...
...
@@ -77,7 +77,7 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
Map
<
String
,
Domain
>
domains
=
entry
.
getValue
().
getDomains
();
for
(
Domain
domain
:
domains
.
values
())
{
String
nodeName
=
domain
.
getId
();
Node
node
=
topologyGraph
.
find
Node
(
nodeName
);
TopologyNode
node
=
topologyGraph
.
findTopology
Node
(
nodeName
);
m_allDomains
.
add
(
nodeName
);
if
(
node
!=
null
)
{
...
...
@@ -85,9 +85,9 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
}
}
}
Map
<
String
,
Edge
>
edges
=
topologyGraph
.
getEdges
();
Map
<
String
,
Topology
Edge
>
edges
=
topologyGraph
.
getEdges
();
for
(
Edge
edge
:
edges
.
values
())
{
for
(
Topology
Edge
edge
:
edges
.
values
())
{
String
self
=
edge
.
getSelf
();
String
to
=
edge
.
getTarget
();
...
...
@@ -106,7 +106,7 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
if
(
topologyGraph
!=
null
)
{
for
(
String
domain
:
domains
)
{
Node
node
=
topologyGraph
.
find
Node
(
domain
);
TopologyNode
node
=
topologyGraph
.
findTopology
Node
(
domain
);
if
(
node
!=
null
)
{
dashboard
.
addNode
(
m_graphBuilder
.
cloneNode
(
node
));
...
...
@@ -125,42 +125,42 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
topylogyGraph
.
setStatus
(
GraphConstrant
.
OK
);
if
(
all
!=
null
)
{
Node
node
=
all
.
find
Node
(
domain
);
TopologyNode
node
=
all
.
findTopology
Node
(
domain
);
if
(
node
!=
null
)
{
topylogyGraph
.
setDes
(
node
.
getDes
());
topylogyGraph
.
setStatus
(
node
.
getStatus
());
topylogyGraph
.
setType
(
node
.
getType
());
}
Collection
<
Edge
>
edges
=
all
.
getEdges
().
values
();
Collection
<
Topology
Edge
>
edges
=
all
.
getEdges
().
values
();
for
(
Edge
edge
:
edges
)
{
for
(
Topology
Edge
edge
:
edges
)
{
String
self
=
edge
.
getSelf
();
String
target
=
edge
.
getTarget
();
Edge
cloneEdge
=
m_graphBuilder
.
cloneEdge
(
edge
);
Topology
Edge
cloneEdge
=
m_graphBuilder
.
cloneEdge
(
edge
);
if
(
self
.
equals
(
domain
))
{
Node
other
=
all
.
find
Node
(
target
);
TopologyNode
other
=
all
.
findTopology
Node
(
target
);
if
(
other
!=
null
)
{
topylogyGraph
.
addNode
(
m_graphBuilder
.
cloneNode
(
other
));
topylogyGraph
.
add
Topology
Node
(
m_graphBuilder
.
cloneNode
(
other
));
}
else
{
topylogyGraph
.
addNode
(
m_graphBuilder
.
createNode
(
target
));
topylogyGraph
.
add
Topology
Node
(
m_graphBuilder
.
createNode
(
target
));
}
edge
.
setOpposite
(
false
);
topylogyGraph
.
addEdge
(
cloneEdge
);
topylogyGraph
.
add
Topology
Edge
(
cloneEdge
);
}
else
if
(
target
.
equals
(
domain
))
{
Node
other
=
all
.
find
Node
(
self
);
TopologyNode
other
=
all
.
findTopology
Node
(
self
);
if
(
other
!=
null
)
{
topylogyGraph
.
addNode
(
m_graphBuilder
.
cloneNode
(
other
));
topylogyGraph
.
add
Topology
Node
(
m_graphBuilder
.
cloneNode
(
other
));
}
else
{
topylogyGraph
.
addNode
(
m_graphBuilder
.
createNode
(
target
));
topylogyGraph
.
add
Topology
Node
(
m_graphBuilder
.
createNode
(
target
));
}
cloneEdge
.
setTarget
(
edge
.
getSelf
());
cloneEdge
.
setSelf
(
edge
.
getTarget
());
cloneEdge
.
setOpposite
(
true
);
topylogyGraph
.
addEdge
(
cloneEdge
);
topylogyGraph
.
add
Topology
Edge
(
cloneEdge
);
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/system/SystemContext.java
浏览文件 @
4329c214
...
...
@@ -18,7 +18,7 @@ import org.unidal.webres.resource.spi.IResourceRegistry;
import
org.unidal.webres.tag.resource.ResourceTagConfigurator
;
import
org.unidal.webres.taglib.basic.ResourceTagLibConfigurator
;
import
com.d
ai
nping.cat.home.dal.user.DpAdminLogin
;
import
com.d
ia
nping.cat.home.dal.user.DpAdminLogin
;
public
class
SystemContext
<
T
extends
ActionPayload
<?
extends
Page
,
?
extends
Action
>>
extends
ActionContext
<
T
>
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/alarm/Handler.java
浏览文件 @
4329c214
...
...
@@ -11,7 +11,7 @@ import org.unidal.web.mvc.annotation.OutboundActionMeta;
import
org.unidal.web.mvc.annotation.PayloadMeta
;
import
org.unidal.web.mvc.annotation.PreInboundActionMeta
;
import
com.d
ai
nping.cat.home.dal.user.DpAdminLogin
;
import
com.d
ia
nping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.system.SystemPage
;
public
class
Handler
implements
PageHandler
<
Context
>
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/alarm/RuleManager.java
浏览文件 @
4329c214
...
...
@@ -8,9 +8,6 @@ import org.unidal.dal.jdbc.DalException;
import
org.unidal.dal.jdbc.DalNotFoundException
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dainping.cat.home.dal.user.DpAdminLogin
;
import
com.dainping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dainping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.home.dal.alarm.AlarmRule
;
import
com.dianping.cat.home.dal.alarm.AlarmRuleDao
;
...
...
@@ -21,6 +18,9 @@ import com.dianping.cat.home.dal.alarm.AlarmRuleSubscriptionEntity;
import
com.dianping.cat.home.dal.alarm.AlarmTemplate
;
import
com.dianping.cat.home.dal.alarm.AlarmTemplateDao
;
import
com.dianping.cat.home.dal.alarm.AlarmTemplateEntity
;
import
com.dianping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dianping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.system.page.alarm.UserAlarmSubState.UserAlarmSubStateCompartor
;
public
class
RuleManager
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/alarm/ScheduledManager.java
浏览文件 @
4329c214
...
...
@@ -8,9 +8,6 @@ import org.unidal.dal.jdbc.DalException;
import
org.unidal.dal.jdbc.DalNotFoundException
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dainping.cat.home.dal.user.DpAdminLogin
;
import
com.dainping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dainping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.home.dal.alarm.ScheduledReport
;
import
com.dianping.cat.home.dal.alarm.ScheduledReportDao
;
...
...
@@ -18,6 +15,9 @@ import com.dianping.cat.home.dal.alarm.ScheduledReportEntity;
import
com.dianping.cat.home.dal.alarm.ScheduledReportSubscription
;
import
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
;
import
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionEntity
;
import
com.dianping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dianping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.system.page.alarm.UserReportSubState.UserReportSubStateCompartor
;
public
class
ScheduledManager
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/login/Handler.java
浏览文件 @
4329c214
...
...
@@ -17,7 +17,7 @@ import org.unidal.web.mvc.annotation.InboundActionMeta;
import
org.unidal.web.mvc.annotation.OutboundActionMeta
;
import
org.unidal.web.mvc.annotation.PayloadMeta
;
import
com.d
ai
nping.cat.home.dal.user.DpAdminLogin
;
import
com.d
ia
nping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.system.SystemContext
;
import
com.dianping.cat.system.SystemPage
;
import
com.dianping.cat.system.page.login.service.Credential
;
...
...
cat-home/src/main/java/com/dianping/cat/system/page/login/service/Session.java
浏览文件 @
4329c214
package
com.dianping.cat.system.page.login.service
;
import
com.d
ai
nping.cat.home.dal.user.DpAdminLogin
;
import
com.d
ia
nping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.system.page.login.spi.ISession
;
public
class
Session
implements
ISession
{
...
...
cat-home/src/main/java/com/dianping/cat/system/page/login/service/SessionManager.java
浏览文件 @
4329c214
...
...
@@ -4,10 +4,10 @@ import org.unidal.dal.jdbc.DalException;
import
org.unidal.dal.jdbc.DalNotFoundException
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dainping.cat.home.dal.user.DpAdminLogin
;
import
com.dainping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dainping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.home.dal.user.DpAdminLogin
;
import
com.dianping.cat.home.dal.user.DpAdminLoginDao
;
import
com.dianping.cat.home.dal.user.DpAdminLoginEntity
;
import
com.dianping.cat.system.page.login.spi.ISessionManager
;
public
class
SessionManager
implements
ISessionManager
<
Session
,
Token
,
Credential
>
{
...
...
cat-home/src/main/resources/META-INF/dal/jdbc/user-dal.xml
浏览文件 @
4329c214
<?xml version="1.0" encoding="UTF-8"?>
<entities
do-package=
"com.d
ai
nping.cat.home.dal.user"
gen=
"true"
>
<entities
do-package=
"com.d
ia
nping.cat.home.dal.user"
gen=
"true"
>
<entity
name=
"dp-admin-login"
table=
"DP_AdminLogin"
alias=
"da"
>
<member
name=
"login-id"
field=
"LoginID"
value-type=
"int"
length=
"10"
key=
"true"
/>
<var
name=
"key-login-id"
value-type=
"int"
key-member=
"login-id"
/>
...
...
cat-home/src/main/resources/META-INF/dal/model/topology-graph-codegen.xml
浏览文件 @
4329c214
...
...
@@ -5,10 +5,10 @@
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"status"
value-type=
"int"
/>
<attribute
name=
"des"
value-type=
"int"
/>
<entity-ref
name=
"
node"
type=
"list"
names=
"
nodes"
/>
<entity-ref
name=
"
edge"
type=
"list"
names=
"
edges"
/>
<entity-ref
name=
"
topology-node"
type=
"list"
names=
"topology-
nodes"
/>
<entity-ref
name=
"
topology-edge"
type=
"list"
names=
"topology-
edges"
/>
</entity>
<entity
name=
"node"
>
<entity
name=
"
topology-
node"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"status"
value-type=
"int"
/>
...
...
@@ -16,7 +16,7 @@
<attribute
name=
"link"
value-type=
"String"
/>
<attribute
name=
"weight"
value-type=
"int"
/>
</entity>
<entity
name=
"edge"
>
<entity
name=
"
topology-
edge"
>
<attribute
name=
"key"
value-type=
"int"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"target"
value-type=
"String"
/>
...
...
cat-home/src/main/resources/META-INF/dal/model/topology-graph-model.xml
浏览文件 @
4329c214
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.home.dependency.graph"
enable-merger=
"true"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
enable-json-parser=
"true"
enable-json-builder=
"true"
enable-
native-parser=
"true"
enable-native-builder=
"tru
e"
>
enable-base-visitor=
"true"
enable-json-parser=
"true"
enable-json-builder=
"true"
enable-native-parser=
"true"
enable-native-builder=
"true"
enable-
xml-parser=
"false"
enable-xml-builder=
"fals
e"
>
<entity
name=
"topology-graph"
root=
"true"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"status"
value-type=
"int"
primitive=
"true"
/>
<attribute
name=
"des"
value-type=
"String"
/>
<entity-ref
name=
"node"
type=
"map"
names=
"nodes"
method-find-or-create=
'true'
/>
<entity-ref
name=
"edge"
type=
"map"
names=
"edges"
method-find-or-create=
'true'
/>
<entity-ref
name=
"
topology-
node"
type=
"map"
names=
"nodes"
method-find-or-create=
'true'
/>
<entity-ref
name=
"
topology-
edge"
type=
"map"
names=
"edges"
method-find-or-create=
'true'
/>
</entity>
<entity
name=
"node"
>
<entity
name=
"
topology-
node"
>
<attribute
name=
"id"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"status"
value-type=
"int"
primitive=
"true"
/>
...
...
@@ -18,7 +18,7 @@
<attribute
name=
"des"
value-type=
"String"
default-value=
""
/>
<attribute
name=
"link"
value-type=
"String"
default-value=
""
/>
</entity>
<entity
name=
"edge"
>
<entity
name=
"
topology-
edge"
>
<attribute
name=
"key"
value-type=
"String"
key=
"true"
/>
<attribute
name=
"type"
value-type=
"String"
/>
<attribute
name=
"self"
value-type=
"String"
/>
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
4329c214
...
...
@@ -1630,8 +1630,8 @@
</configuration>
</component>
<component>
<role>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<role>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -2829,7 +2829,7 @@
<role>
com.dianping.cat.home.dal.alarm.AlarmTemplateDao
</role>
</requirement>
<requirement>
<role>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<role>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</role>
</requirement>
</requirements>
</component>
...
...
@@ -2852,8 +2852,8 @@
</requirements>
</component>
<component>
<role>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<role>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
...
...
@@ -2865,7 +2865,7 @@
<implementation>
com.dianping.cat.system.page.alarm.ScheduledManager
</implementation>
<requirements>
<requirement>
<role>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<role>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</role>
...
...
@@ -2951,7 +2951,7 @@
<implementation>
com.dianping.cat.system.page.login.service.SessionManager
</implementation>
<requirements>
<requirement>
<role>
com.d
ai
nping.cat.home.dal.user.DpAdminLoginDao
</role>
<role>
com.d
ia
nping.cat.home.dal.user.DpAdminLoginDao
</role>
</requirement>
</requirements>
</component>
...
...
cat-home/src/main/resources/META-INF/wizard/model/wizard.xml
浏览文件 @
4329c214
<?xml version="1.0" encoding="utf-8"?>
<wizard
package=
"com.dianping.cat.home"
>
<model
package=
"com.dianping.cat.home.front"
name=
"front"
>
<sample-model>
/Users/youyong/Documents/workspace/cat/cat-home/src/test/resources/com/dianping/cat/system/front/front.xml
</sample-model>
</model>
<model
package=
"com.dianping.cat.home.topology-graph"
name=
"topology-graph"
>
<sample-model>
/Users/youyong/Documents/workspace/cat/cat-home/src/test/resources/com/dianping/cat/report/page/dependency/topology-graph.xml
</sample-model>
</model>
...
...
cat-home/src/main/webapp/jsp/report/dependency/dependencyTopologyGraph.jsp
浏览文件 @
4329c214
...
...
@@ -72,10 +72,10 @@
"
bPaginate
"
:
false
,
});
var
data
=
$
{
model
.
topologyGraph
};
console
.
log
(
data
);
function
parse
(
data
){
var
nodes
=
data
.
nodes
;
var
edges
=
data
.
edges
;
var
points
=
[];
var
sides
=
[];
...
...
@@ -84,7 +84,7 @@
points
.
push
(
nodes
[
o
]);
}
}
for
(
var
o
in
data
.
edges
){
for
(
var
o
in
edges
){
if
(
data
.
edges
.
hasOwnProperty
(
o
)){
sides
.
push
(
data
.
edges
[
o
]);
}
...
...
cat-home/src/test/resources/com/dianping/cat/report/page/dependency/topology-graph.xml
浏览文件 @
4329c214
<topology-graph
id=
"TuanGouWeb"
type=
"project"
status=
"1"
des=
"11231"
>
<
node
id=
"TuanGouService"
type=
"Service"
status=
"2"
des=
"OK"
link=
""
weight=
"1"
></
node>
<
node
id=
"UserBaseService"
type=
"Service"
status=
"2"
des=
"OK"
link=
""
></
node>
<
node
id=
"Dianping"
type=
"Database"
status=
"2"
des=
"OK"
link=
""
></
node>
<
node
id=
"TuanGou"
type=
"Database"
status=
"2"
des=
"OK"
link=
""
></
node>
<
edge
key=
"1"
type=
"PigeonCall"
target=
"TuanGouService"
opposite=
"true"
weight=
"1"
status=
"2"
des=
"OK"
link=
""
></
edge>
<
edge
key=
"2"
type=
"PigeonCall"
target=
"UserBaseService"
opposite=
"true"
status=
"2"
des=
"OK"
link=
""
></
edge>
<
edge
key=
"3"
type=
"PigeonCall"
target=
"TuanGouWeb"
opposite=
"true"
status=
"2"
des=
"OK"
link=
""
></
edge>
<
topology-node
id=
"TuanGouService"
type=
"Service"
status=
"2"
des=
"OK"
link=
""
weight=
"1"
></topology-
node>
<
topology-node
id=
"UserBaseService"
type=
"Service"
status=
"2"
des=
"OK"
link=
""
></topology-
node>
<
topology-node
id=
"Dianping"
type=
"Database"
status=
"2"
des=
"OK"
link=
""
></topology-
node>
<
topology-node
id=
"TuanGou"
type=
"Database"
status=
"2"
des=
"OK"
link=
""
></topology-
node>
<
topology-edge
key=
"1"
type=
"PigeonCall"
target=
"TuanGouService"
opposite=
"true"
weight=
"1"
status=
"2"
des=
"OK"
link=
""
></topology-
edge>
<
topology-edge
key=
"2"
type=
"PigeonCall"
target=
"UserBaseService"
opposite=
"true"
status=
"2"
des=
"OK"
link=
""
></topology-
edge>
<
topology-edge
key=
"3"
type=
"PigeonCall"
target=
"TuanGouWeb"
opposite=
"true"
status=
"2"
des=
"OK"
link=
""
></topology-
edge>
</topology-graph>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录