diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index 9296f4f548..8256d95791 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -61,6 +61,7 @@ * Update the endpoint name format to `:` in eBPF Access Log Receiver. * Add self-observability metrics for OpenTelemetry receiver. * Support service level metrics aggregate when missing pod context in eBPF Access Log Receiver. +* Fix query `getGlobalTopology` throw exception when didn't find any services by the given Layer. #### UI diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java index f4a37f5177..6715453c0e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java @@ -130,6 +130,9 @@ public class TopologyQueryService implements Service { span = traceContext.createSpan("Query Service: getServiceTopology"); span.setMsg("Duration: " + duration + ", ServiceIds: " + serviceIds); } + if (CollectionUtils.isEmpty(serviceIds)) { + return new Topology(); + } return invokeGetServiceTopology(duration, serviceIds); } finally { if (traceContext != null && span != null) {