diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/ServiceInstance.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/ServiceInstance.java index 733d5826f5..4f62ae8778 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/ServiceInstance.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/entity/ServiceInstance.java @@ -32,6 +32,7 @@ public class ServiceInstance { @Setter private String name; private final List attributes; @Setter private Language language = Language.UNKNOWN; + @Setter private String instanceUUID; public ServiceInstance() { this.attributes = new ArrayList<>(); diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol index f9bb3fe4d8..c970b1972a 160000 --- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol +++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol @@ -1 +1 @@ -Subproject commit f9bb3fe4d85b7c989d0692f38c3341c3c13646e7 +Subproject commit c970b1972ad69d2622eb0b41a067c230d46b3da8 diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java index e878018588..93f05a816e 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java @@ -245,6 +245,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO { ServiceInstance serviceInstance = new ServiceInstance(); serviceInstance.setId(String.valueOf(sourceAsMap.get(ServiceInstanceInventory.SEQUENCE))); serviceInstance.setName((String)sourceAsMap.get(ServiceInstanceInventory.NAME)); + serviceInstance.setInstanceUUID((String)sourceAsMap.get(ServiceInstanceInventory.INSTANCE_UUID)); String propertiesString = (String)sourceAsMap.get(ServiceInstanceInventory.PROPERTIES); if (!Strings.isNullOrEmpty(propertiesString)) { diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java index 5c3eeb0100..8a152d7d3f 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2MetadataQueryDAO.java @@ -277,6 +277,7 @@ public class H2MetadataQueryDAO implements IMetadataQueryDAO { ServiceInstance serviceInstance = new ServiceInstance(); serviceInstance.setId(resultSet.getString(ServiceInstanceInventory.SEQUENCE)); serviceInstance.setName(resultSet.getString(ServiceInstanceInventory.NAME)); + serviceInstance.setInstanceUUID(resultSet.getString(ServiceInstanceInventory.INSTANCE_UUID)); String propertiesString = resultSet.getString(ServiceInstanceInventory.PROPERTIES); if (!Strings.isNullOrEmpty(propertiesString)) { diff --git a/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/Instance.java b/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/Instance.java index 57e6a56704..1e5323ef41 100644 --- a/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/Instance.java +++ b/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/Instance.java @@ -27,6 +27,7 @@ public class Instance { private String key; private String label; private List attributes; + private String instanceUUID; public String getKey() { return key; @@ -54,12 +55,22 @@ public class Instance { this.attributes = attributes; } + public String getInstanceUUID() { + return instanceUUID; + } + + public Instance setInstanceUUID(String instanceUUID) { + this.instanceUUID = instanceUUID; + return this; + } + @Override public String toString() { return "Instance{" + "key='" + key + '\'' + ", label='" + label + '\'' + ", attributes=" + attributes + + ", instanceUUID=" + instanceUUID + '}'; } } diff --git a/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/InstanceMatcher.java b/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/InstanceMatcher.java index af6434afd9..6bcc4b8f96 100644 --- a/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/InstanceMatcher.java +++ b/test/e2e/e2e-base/src/main/java/org/apache/skywalking/e2e/service/instance/InstanceMatcher.java @@ -34,6 +34,7 @@ public class InstanceMatcher extends AbstractMatcher { private String key; private String label; + private String instanceUUID; private List attributes; @Override @@ -46,6 +47,10 @@ public class InstanceMatcher extends AbstractMatcher { verifyLabel(instance); } + if (Objects.nonNull(getInstanceUUID())) { + verifyInstanceUUID(instance); + } + if (Objects.nonNull(getAttributes())) { verifyAttributes(instance); } @@ -65,6 +70,13 @@ public class InstanceMatcher extends AbstractMatcher { doVerify(expected, actual); } + private void verifyInstanceUUID(Instance instance) { + final String expected = this.getInstanceUUID(); + final String actual = instance.getInstanceUUID(); + + doVerify(expected, actual); + } + private void verifyAttributes(Instance instance) { final List expected = this.getAttributes(); final List actual = instance.getAttributes(); @@ -94,6 +106,14 @@ public class InstanceMatcher extends AbstractMatcher { this.label = label; } + public String getInstanceUUID() { + return instanceUUID; + } + + public void setInstanceUUID(String instanceUUID) { + this.instanceUUID = instanceUUID; + } + public List getAttributes() { return attributes; } @@ -105,9 +125,10 @@ public class InstanceMatcher extends AbstractMatcher { @Override public String toString() { return "InstanceMatcher{" + - "key='" + key + '\'' + - ", label='" + label + '\'' + - ", attributes=" + attributes + - '}'; + "key='" + key + '\'' + + ", label='" + label + '\'' + + ", instanceUUID='" + instanceUUID + '\'' + + ", attributes=" + attributes + + '}'; } } diff --git a/test/e2e/e2e-base/src/main/resources/instances.gql b/test/e2e/e2e-base/src/main/resources/instances.gql index 949c793a4e..bf5bc93e60 100644 --- a/test/e2e/e2e-base/src/main/resources/instances.gql +++ b/test/e2e/e2e-base/src/main/resources/instances.gql @@ -23,6 +23,7 @@ name value } + instanceUUID } }", "variables": {