Skip to content

Commit d868410

Browse files
committed
add more service check before query topology
1 parent 06eed19 commit d868410

File tree

2 files changed

+8
-4
lines changed
  • oap-server
    • server-core/src/main/java/org/apache/skywalking/oap/server/core/query
    • server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver

2 files changed

+8
-4
lines changed

oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import org.apache.skywalking.oap.server.library.module.Service;
4242
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
4343
import org.apache.skywalking.oap.server.library.util.StringUtil;
44-
4544
import java.io.IOException;
4645
import java.util.ArrayList;
4746
import java.util.Collections;
@@ -130,7 +129,7 @@ public Topology getServiceTopology(final Duration duration,
130129
span = traceContext.createSpan("Query Service: getServiceTopology");
131130
span.setMsg("Duration: " + duration + ", ServiceIds: " + serviceIds);
132131
}
133-
132+
//check if the service exists
134133
List<String> ids = serviceIds.stream()
135134
.filter(id -> getMetadataQueryService().getService(id) != null)
136135
.collect(Collectors.toList());
@@ -198,6 +197,12 @@ public ServiceInstanceTopology getServiceInstanceTopology(final String clientSer
198197
span = traceContext.createSpan("Query Service: getServiceInstanceTopology");
199198
span.setMsg("ClientServiceId: " + clientServiceId + ", ServerServiceId: " + serverServiceId + ", Duration: " + duration);
200199
}
200+
//check if the service exists
201+
if (getMetadataQueryService().getService(clientServiceId) == null ||
202+
getMetadataQueryService().getService(serverServiceId) == null) {
203+
return new ServiceInstanceTopology();
204+
}
205+
201206
return invokeGetServiceInstanceTopology(clientServiceId, serverServiceId, duration);
202207
} finally {
203208
if (traceContext != null && span != null) {
@@ -209,7 +214,6 @@ public ServiceInstanceTopology getServiceInstanceTopology(final String clientSer
209214
private ServiceInstanceTopology invokeGetServiceInstanceTopology(final String clientServiceId,
210215
final String serverServiceId,
211216
final Duration duration) throws IOException {
212-
//todo: check service id?
213217
List<Call.CallDetail> serviceInstanceRelationClientCalls = getTopologyQueryDAO().loadInstanceRelationDetectedAtClientSideDebuggable(
214218
clientServiceId, serverServiceId, duration);
215219
List<Call.CallDetail> serviceInstanceRelationServerCalls = getTopologyQueryDAO().loadInstanceRelationDetectedAtServerSideDebuggable(

oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TopologyQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public Topology getServiceTopologyByName(final ServiceCondition service,
108108
DebuggingSpan span = traceContext.createSpan("Query service topology");
109109
try {
110110
List<String> selectedServiceList = new ArrayList<>(1);
111-
selectedServiceList.add(service.getServiceId());
111+
selectedServiceList.add(service.getServiceId());
112112
Topology topology = this.getServicesTopology(selectedServiceList, duration, debug).join();
113113
if (debug) {
114114
topology.setDebuggingTrace(traceContext.getExecTrace());

0 commit comments

Comments
 (0)