diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java index 1b10baf32b51e5f2dce6d477fa29351213d20e95..cd83c2f20495167403b8111df8c28c7f7dc7d880 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetricQueryService.java @@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.storage.annotation.ValueColumnIds; import org.apache.skywalking.oap.server.core.storage.query.IMetricQueryDAO; import org.apache.skywalking.oap.server.library.module.*; import org.apache.skywalking.oap.server.library.module.Service; +import org.apache.skywalking.oap.server.library.util.CollectionUtils; import org.slf4j.*; /** @@ -56,6 +57,10 @@ public class MetricQueryService implements Service { public IntValues getValues(final String indName, final List ids, final Step step, final long startTB, final long endTB) throws IOException { + if (CollectionUtils.isEmpty(ids)) { + throw new RuntimeException("IDs can't be null"); + } + Where where = new Where(); KeyValues intKeyValues = new KeyValues(); intKeyValues.setKey(Indicator.ENTITY_ID); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java index 029e19232ba1bfa1741dd88da34b5c19c85ecb01..3d330f86e18a152b3b0ead326bfbad6c4e348d6f 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/EndpointInventory.java @@ -18,15 +18,19 @@ package org.apache.skywalking.oap.server.core.register; -import java.util.*; -import lombok.*; +import java.util.HashMap; +import java.util.Map; +import lombok.Getter; +import lombok.Setter; import org.apache.skywalking.oap.server.core.Const; import org.apache.skywalking.oap.server.core.register.annotation.InventoryType; import org.apache.skywalking.oap.server.core.remote.annotation.StreamData; import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData; import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.storage.StorageBuilder; -import org.apache.skywalking.oap.server.core.storage.annotation.*; +import org.apache.skywalking.oap.server.core.storage.annotation.Column; +import org.apache.skywalking.oap.server.core.storage.annotation.StorageEntity; +import org.apache.skywalking.oap.server.library.util.StringUtils; /** * @author peng-yongsheng @@ -87,7 +91,7 @@ public class EndpointInventory extends RegisterSource { remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getHeartbeatTime()); - remoteBuilder.addDataStrings(name); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING)); return remoteBuilder; } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java index 2ac68160afeae8590d09767641fe1bad26d5824a..cf465b68c3b2cd75a31bac2624d99458495495b9 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/NetworkAddressInventory.java @@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData; import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.annotation.*; +import org.apache.skywalking.oap.server.library.util.StringUtils; /** * @author peng-yongsheng @@ -87,7 +88,7 @@ public class NetworkAddressInventory extends RegisterSource { remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getHeartbeatTime()); - remoteBuilder.addDataStrings(name); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING)); return remoteBuilder; } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java index a4760176956eabe7098f70d191864492848de1dd..519a7d2e35d2abf3d1bd69b8e43a391d57dd9a72 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInstanceInventory.java @@ -30,6 +30,7 @@ import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.library.util.BooleanUtils; +import org.apache.skywalking.oap.server.library.util.StringUtils; /** * @author peng-yongsheng @@ -122,11 +123,11 @@ public class ServiceInstanceInventory extends RegisterSource { remoteBuilder.addDataLongs(getRegisterTime()); remoteBuilder.addDataLongs(getHeartbeatTime()); - remoteBuilder.addDataStrings(name); - remoteBuilder.addDataStrings(osName); - remoteBuilder.addDataStrings(hostName); - remoteBuilder.addDataStrings(ipv4s); - remoteBuilder.addDataStrings(instanceUUID); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING)); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(osName, Const.EMPTY_STRING)); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(hostName, Const.EMPTY_STRING)); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(ipv4s, Const.EMPTY_STRING)); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(instanceUUID, Const.EMPTY_STRING)); return remoteBuilder; } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java index 460e0b97cc2bf1cea38af54d62922522aa45b5bf..c2c219975c2821113a44bfa9b68b0af88c4f8e5b 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java @@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.storage.StorageBuilder; import org.apache.skywalking.oap.server.core.storage.annotation.*; import org.apache.skywalking.oap.server.library.util.BooleanUtils; +import org.apache.skywalking.oap.server.library.util.StringUtils; /** * @author peng-yongsheng @@ -105,7 +106,7 @@ public class ServiceInventory extends RegisterSource { remoteBuilder.addDataLongs(getHeartbeatTime()); remoteBuilder.addDataLongs(getMappingLastUpdateTime()); - remoteBuilder.addDataStrings(name); + remoteBuilder.addDataStrings(StringUtils.getOrDefault(name, Const.EMPTY_STRING)); return remoteBuilder; } diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java index 34d84ca1ba5b3f2cbcb2c4bc7cc971f4696c3252..2d425c46b933028e504110c6f8f01fa98aad88a2 100644 --- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java +++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/StringUtils.java @@ -32,4 +32,8 @@ public class StringUtils { public static boolean isNotEmpty(Object str) { return !isEmpty(str); } + + public static String getOrDefault(String value, String defaultValue) { + return value == null ? defaultValue : value; + } }