Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
40633979
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
40633979
编写于
10月 17, 2018
作者:
彭
彭勇升 pengys
提交者:
wu-sheng
10月 17, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Trigger service heartbeat when received service instance heartbeat. (#1785)
Fixed some meta query bugs.
上级
064595eb
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
65 addition
and
12 deletion
+65
-12
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
...kywalking/oap/server/core/query/TopologyQueryService.java
+35
-3
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Service.java
...ache/skywalking/oap/server/core/query/entity/Service.java
+1
-1
oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TopologyQuery.java
.../skywalking/oap/query/graphql/resolver/TopologyQuery.java
+6
-2
oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
...ider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
+15
-1
oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
...torage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
+8
-5
未找到文件。
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java
浏览文件 @
40633979
...
...
@@ -26,7 +26,7 @@ import org.apache.skywalking.oap.server.core.config.IComponentLibraryCatalogServ
import
org.apache.skywalking.oap.server.core.query.entity.*
;
import
org.apache.skywalking.oap.server.core.source.*
;
import
org.apache.skywalking.oap.server.core.storage.StorageModule
;
import
org.apache.skywalking.oap.server.core.storage.query.
ITopologyQueryDAO
;
import
org.apache.skywalking.oap.server.core.storage.query.
*
;
import
org.apache.skywalking.oap.server.library.module.*
;
import
org.apache.skywalking.oap.server.library.module.Service
;
import
org.slf4j.*
;
...
...
@@ -40,6 +40,7 @@ public class TopologyQueryService implements Service {
private
final
ModuleManager
moduleManager
;
private
ITopologyQueryDAO
topologyQueryDAO
;
private
IMetadataQueryDAO
metadataQueryDAO
;
private
EndpointInventoryCache
endpointInventoryCache
;
private
IComponentLibraryCatalogService
componentLibraryCatalogService
;
...
...
@@ -47,6 +48,13 @@ public class TopologyQueryService implements Service {
this
.
moduleManager
=
moduleManager
;
}
private
IMetadataQueryDAO
getMetadataQueryDAO
()
{
if
(
metadataQueryDAO
==
null
)
{
metadataQueryDAO
=
moduleManager
.
find
(
StorageModule
.
NAME
).
getService
(
IMetadataQueryDAO
.
class
);
}
return
metadataQueryDAO
;
}
private
ITopologyQueryDAO
getTopologyQueryDAO
()
{
if
(
topologyQueryDAO
==
null
)
{
topologyQueryDAO
=
moduleManager
.
find
(
StorageModule
.
NAME
).
getService
(
ITopologyQueryDAO
.
class
);
...
...
@@ -68,7 +76,8 @@ public class TopologyQueryService implements Service {
return
endpointInventoryCache
;
}
public
Topology
getGlobalTopology
(
final
Step
step
,
final
long
startTB
,
final
long
endTB
)
throws
IOException
{
public
Topology
getGlobalTopology
(
final
Step
step
,
final
long
startTB
,
final
long
endTB
,
final
long
startTimestamp
,
final
long
endTimestamp
)
throws
IOException
{
logger
.
debug
(
"step: {}, startTimeBucket: {}, endTimeBucket: {}"
,
step
,
startTB
,
endTB
);
List
<
ServiceComponent
>
serviceComponents
=
getTopologyQueryDAO
().
loadServiceComponents
(
step
,
startTB
,
endTB
);
List
<
ServiceMapping
>
serviceMappings
=
getTopologyQueryDAO
().
loadServiceMappings
(
step
,
startTB
,
endTB
);
...
...
@@ -76,8 +85,31 @@ public class TopologyQueryService implements Service {
List
<
Call
>
serviceRelationClientCalls
=
getTopologyQueryDAO
().
loadClientSideServiceRelations
(
step
,
startTB
,
endTB
);
List
<
Call
>
serviceRelationServerCalls
=
getTopologyQueryDAO
().
loadServerSideServiceRelations
(
step
,
startTB
,
endTB
);
List
<
org
.
apache
.
skywalking
.
oap
.
server
.
core
.
query
.
entity
.
Service
>
serviceList
=
getMetadataQueryDAO
().
searchServices
(
startTimestamp
,
endTimestamp
,
null
);
TopologyBuilder
builder
=
new
TopologyBuilder
(
moduleManager
);
return
builder
.
build
(
serviceComponents
,
serviceMappings
,
serviceRelationClientCalls
,
serviceRelationServerCalls
);
Topology
topology
=
builder
.
build
(
serviceComponents
,
serviceMappings
,
serviceRelationClientCalls
,
serviceRelationServerCalls
);
serviceList
.
forEach
(
service
->
{
boolean
contains
=
false
;
for
(
Node
node
:
topology
.
getNodes
())
{
if
(
service
.
getId
()
==
node
.
getId
())
{
contains
=
true
;
break
;
}
}
if
(!
contains
)
{
Node
newNode
=
new
Node
();
newNode
.
setId
(
service
.
getId
());
newNode
.
setName
(
service
.
getName
());
newNode
.
setReal
(
true
);
newNode
.
setType
(
Const
.
UNKNOWN
);
topology
.
getNodes
().
add
(
newNode
);
}
});
return
topology
;
}
public
Topology
getServiceTopology
(
final
Step
step
,
final
long
startTB
,
final
long
endTB
,
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/Service.java
浏览文件 @
40633979
...
...
@@ -26,6 +26,6 @@ import lombok.*;
@Getter
@Setter
public
class
Service
{
private
String
id
;
private
int
id
;
private
String
name
;
}
oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TopologyQuery.java
浏览文件 @
40633979
...
...
@@ -20,6 +20,7 @@ package org.apache.skywalking.oap.query.graphql.resolver;
import
com.coxautodev.graphql.tools.GraphQLQueryResolver
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
org.apache.skywalking.oap.query.graphql.type.Duration
;
import
org.apache.skywalking.oap.server.core.CoreModule
;
import
org.apache.skywalking.oap.server.core.query.*
;
...
...
@@ -45,11 +46,14 @@ public class TopologyQuery implements GraphQLQueryResolver {
return
queryService
;
}
public
Topology
getGlobalTopology
(
final
Duration
duration
)
throws
IOException
{
public
Topology
getGlobalTopology
(
final
Duration
duration
)
throws
IOException
,
ParseException
{
long
startTimeBucket
=
DurationUtils
.
INSTANCE
.
exchangeToTimeBucket
(
duration
.
getStart
());
long
endTimeBucket
=
DurationUtils
.
INSTANCE
.
exchangeToTimeBucket
(
duration
.
getEnd
());
return
getQueryService
().
getGlobalTopology
(
duration
.
getStep
(),
startTimeBucket
,
endTimeBucket
);
long
startTimestamp
=
DurationUtils
.
INSTANCE
.
toTimestamp
(
duration
.
getStep
(),
duration
.
getStart
());
long
endTimestamp
=
DurationUtils
.
INSTANCE
.
toTimestamp
(
duration
.
getStep
(),
duration
.
getEnd
());
return
getQueryService
().
getGlobalTopology
(
duration
.
getStep
(),
startTimeBucket
,
endTimeBucket
,
startTimestamp
,
endTimestamp
);
}
public
Topology
getServiceTopology
(
final
int
serviceId
,
final
Duration
duration
)
throws
IOException
{
...
...
oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
浏览文件 @
40633979
...
...
@@ -19,10 +19,12 @@
package
org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc
;
import
io.grpc.stub.StreamObserver
;
import
java.util.Objects
;
import
org.apache.skywalking.apm.network.language.agent.*
;
import
org.apache.skywalking.oap.server.core.CoreModule
;
import
org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache
;
import
org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory
;
import
org.apache.skywalking.oap.server.core.register.service.
IServiceInstanceInventoryRegister
;
import
org.apache.skywalking.oap.server.core.register.service.
*
;
import
org.apache.skywalking.oap.server.library.module.ModuleManager
;
import
org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler
;
import
org.slf4j.*
;
...
...
@@ -34,9 +36,13 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
InstanceDiscoveryServiceHandler
.
class
);
private
final
ServiceInstanceInventoryCache
serviceInstanceInventoryCache
;
private
final
IServiceInventoryRegister
serviceInventoryRegister
;
private
final
IServiceInstanceInventoryRegister
serviceInstanceInventoryRegister
;
public
InstanceDiscoveryServiceHandler
(
ModuleManager
moduleManager
)
{
this
.
serviceInstanceInventoryCache
=
moduleManager
.
find
(
CoreModule
.
NAME
).
getService
(
ServiceInstanceInventoryCache
.
class
);
this
.
serviceInventoryRegister
=
moduleManager
.
find
(
CoreModule
.
NAME
).
getService
(
IServiceInventoryRegister
.
class
);
this
.
serviceInstanceInventoryRegister
=
moduleManager
.
find
(
CoreModule
.
NAME
).
getService
(
IServiceInstanceInventoryRegister
.
class
);
}
...
...
@@ -62,6 +68,14 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp
int
serviceInstanceId
=
request
.
getApplicationInstanceId
();
long
heartBeatTime
=
request
.
getHeartbeatTime
();
serviceInstanceInventoryRegister
.
heartbeat
(
serviceInstanceId
,
heartBeatTime
);
ServiceInstanceInventory
serviceInstanceInventory
=
serviceInstanceInventoryCache
.
get
(
serviceInstanceId
);
if
(
Objects
.
nonNull
(
serviceInstanceInventory
))
{
serviceInventoryRegister
.
heartbeat
(
serviceInstanceInventory
.
getServiceId
(),
heartBeatTime
);
}
else
{
logger
.
warn
(
"Can't found service instance by service instance id from cache, service instance id is: {}"
,
serviceInstanceId
);
}
responseObserver
.
onNext
(
Downstream
.
getDefaultInstance
());
responseObserver
.
onCompleted
();
}
...
...
oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
浏览文件 @
40633979
...
...
@@ -111,9 +111,12 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
must
().
add
(
timeRangeQueryBuild
(
startTimestamp
,
endTimestamp
));
boolQueryBuilder
.
must
().
add
(
QueryBuilders
.
termQuery
(
ServiceInventory
.
IS_ADDRESS
,
BooleanUtils
.
FALSE
));
String
matchCName
=
MatchCNameBuilder
.
INSTANCE
.
build
(
ServiceInventory
.
NAME
);
boolQueryBuilder
.
must
().
add
(
QueryBuilders
.
matchQuery
(
matchCName
,
keyword
));
if
(
StringUtils
.
isNotEmpty
(
keyword
))
{
String
matchCName
=
MatchCNameBuilder
.
INSTANCE
.
build
(
ServiceInventory
.
NAME
);
boolQueryBuilder
.
must
().
add
(
QueryBuilders
.
matchQuery
(
matchCName
,
keyword
));
}
sourceBuilder
.
query
(
boolQueryBuilder
);
sourceBuilder
.
size
(
100
);
...
...
@@ -127,7 +130,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
GetResponse
response
=
getClient
().
get
(
ServiceInventory
.
MODEL_NAME
,
ServiceInventory
.
buildId
(
serviceCode
));
if
(
response
.
isExists
())
{
Service
service
=
new
Service
();
service
.
setId
(
String
.
valueOf
(
response
.
getSource
().
get
(
ServiceInventory
.
SEQUENCE
)
));
service
.
setId
(
((
Number
)
response
.
getSource
().
get
(
ServiceInventory
.
SEQUENCE
)).
intValue
(
));
service
.
setName
((
String
)
response
.
getSource
().
get
(
ServiceInventory
.
NAME
));
return
service
;
}
else
{
...
...
@@ -142,8 +145,8 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
BoolQueryBuilder
boolQueryBuilder
=
QueryBuilders
.
boolQuery
();
boolQueryBuilder
.
must
().
add
(
QueryBuilders
.
termQuery
(
EndpointInventory
.
SERVICE_ID
,
serviceId
));
String
matchCName
=
MatchCNameBuilder
.
INSTANCE
.
build
(
EndpointInventory
.
NAME
);
if
(
StringUtils
.
isNotEmpty
(
keyword
))
{
String
matchCName
=
MatchCNameBuilder
.
INSTANCE
.
build
(
EndpointInventory
.
NAME
);
boolQueryBuilder
.
must
().
add
(
QueryBuilders
.
matchQuery
(
matchCName
,
keyword
));
}
...
...
@@ -208,7 +211,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
Map
<
String
,
Object
>
sourceAsMap
=
searchHit
.
getSourceAsMap
();
Service
service
=
new
Service
();
service
.
setId
(
String
.
valueOf
(
sourceAsMap
.
get
(
ServiceInventory
.
SEQUENCE
)
));
service
.
setId
(
((
Number
)
sourceAsMap
.
get
(
ServiceInventory
.
SEQUENCE
)).
intValue
(
));
service
.
setName
((
String
)
sourceAsMap
.
get
(
ServiceInventory
.
NAME
));
services
.
add
(
service
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录