From 6c90a954edd73b6eb706c7e6ab3fa7a0f0ae6848 Mon Sep 17 00:00:00 2001 From: Zhenxu Ke Date: Thu, 20 May 2021 10:43:16 +0800 Subject: [PATCH] Fetch further data only when they're requested (#6976) --- .../oap/query/graphql/resolver/AlarmQuery.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java index c0d38f45a..cb63af78c 100644 --- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java +++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java @@ -20,6 +20,7 @@ package org.apache.skywalking.oap.query.graphql.resolver; import com.coxautodev.graphql.tools.GraphQLQueryResolver; +import graphql.schema.DataFetchingEnvironment; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -79,7 +80,8 @@ public class AlarmQuery implements GraphQLQueryResolver { } public Alarms getAlarm(final Duration duration, final Scope scope, final String keyword, - final Pagination paging, final List tags) throws Exception { + final Pagination paging, final List tags, + final DataFetchingEnvironment env) throws Exception { Integer scopeId = null; if (scope != null) { scopeId = scope.getScopeId(); @@ -94,7 +96,14 @@ public class AlarmQuery implements GraphQLQueryResolver { } Alarms alarms = getQueryService().getAlarm( scopeId, keyword, paging, startSecondTB, endSecondTB, tags); - return findRelevantEvents(alarms, conditionPrototype); + + final boolean selectEvents = env.getSelectionSet().get().entrySet().stream().anyMatch(it -> it.getKey().contains("/events/")); + + if (selectEvents) { + return findRelevantEvents(alarms, conditionPrototype); + } + + return alarms; } private Alarms findRelevantEvents(