wu-sheng closed pull request #919: Fixed/918
URL: https://github.com/apache/incubator-skywalking/pull/919
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
index 5fce0f777..ea7396e0e 100644
---
a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
+++
b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
@@ -18,6 +18,8 @@
package org.apache.skywalking.apm.collector.remote.grpc.service;
+import org.apache.skywalking.apm.collector.core.util.Const;
+import org.apache.skywalking.apm.collector.core.util.StringUtils;
import org.apache.skywalking.apm.collector.remote.grpc.proto.RemoteData;
import
org.apache.skywalking.apm.collector.remote.service.RemoteSerializeService;
@@ -29,7 +31,11 @@
@Override public RemoteData.Builder
serialize(org.apache.skywalking.apm.collector.core.data.RemoteData data) {
RemoteData.Builder builder = RemoteData.newBuilder();
for (int i = 0; i < data.getDataStringsCount(); i++) {
- builder.addDataStrings(data.getDataString(i));
+ if (StringUtils.isNotEmpty(data.getDataString(i))) {
+ builder.addDataStrings(data.getDataString(i));
+ } else {
+ builder.addDataStrings(Const.EMPTY_STRING);
+ }
}
for (int i = 0; i < data.getDataIntegersCount(); i++) {
builder.addDataIntegers(data.getDataInteger(i));
diff --git
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
index d3d7eff89..537846beb 100644
---
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
+++
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
@@ -160,7 +160,7 @@ private Long heartBeatTime(AbstractQueryBuilder
queryBuilder) {
@Override
public List<AppServerInfo> searchServer(String keyword, long
startSecondTimeBucket, long endSecondTimeBucket) {
- logger.debug("get instances info, keyword: {}, start: {}, end: {}",
keyword, startSecondTimeBucket, endSecondTimeBucket);
+ logger.debug("get instances info, keyword: {}, startSecondTimeBucket:
{}, endSecondTimeBucket: {}", keyword, startSecondTimeBucket,
endSecondTimeBucket);
SearchRequestBuilder searchRequestBuilder =
getClient().prepareSearch(InstanceTable.TABLE);
searchRequestBuilder.setTypes(InstanceTable.TABLE_TYPE);
searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
@@ -172,7 +172,6 @@ private Long heartBeatTime(AbstractQueryBuilder
queryBuilder) {
}
boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS,
BooleanUtils.FALSE));
- //TODO second
BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
timeBoolQuery.should().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
diff --git
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
index 341c2ea4b..da385aac9 100644
---
a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
+++
b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
@@ -21,6 +21,7 @@
import java.util.LinkedList;
import java.util.List;
import
org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
+import org.apache.skywalking.apm.collector.core.util.StringUtils;
import
org.apache.skywalking.apm.collector.storage.dao.ui.IServiceNameServiceUIDAO;
import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
import
org.apache.skywalking.apm.collector.storage.table.register.ServiceNameTable;
@@ -59,11 +60,14 @@ public ServiceNameServiceEsUIDAO(ElasticSearchClient
client) {
searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
searchRequestBuilder.setSize(topN);
- BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-
boolQuery.must().add(QueryBuilders.matchQuery(ServiceNameTable.COLUMN_SERVICE_NAME,
keyword));
-
boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE,
SpanType.Entry_VALUE));
-
- searchRequestBuilder.setQuery(boolQuery);
+ if (StringUtils.isNotEmpty(keyword)) {
+ BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
+
boolQuery.must().add(QueryBuilders.matchQuery(ServiceNameTable.COLUMN_SERVICE_NAME,
keyword));
+
boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE,
SpanType.Entry_VALUE));
+ searchRequestBuilder.setQuery(boolQuery);
+ } else {
+
searchRequestBuilder.setQuery(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE,
SpanType.Entry_VALUE));
+ }
SearchResponse searchResponse =
searchRequestBuilder.execute().actionGet();
SearchHit[] searchHits = searchResponse.getHits().getHits();
diff --git
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java
index 5e7f699d4..6ccf59647 100644
---
a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java
+++
b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/TopologyBuilder.java
@@ -77,6 +77,9 @@ Topology
build(List<IApplicationComponentUIDAO.ApplicationComponent> application
Map<Integer, String> components =
changeNodeComp2Map(applicationComponents);
Map<Integer, Integer> mappings =
changeMapping2Map(applicationMappings);
+ filterZeroSourceOrTargetReference(callerReferenceMetric);
+ filterZeroSourceOrTargetReference(calleeReferenceMetric);
+
calleeReferenceMetric =
calleeReferenceMetricFilter(calleeReferenceMetric);
List<Node> nodes = new LinkedList<>();
@@ -124,20 +127,24 @@ Topology
build(List<IApplicationComponentUIDAO.ApplicationComponent> application
});
List<Call> calls = new LinkedList<>();
+ Set<Integer> nodeIds = new HashSet<>();
callerReferenceMetric.forEach(referenceMetric -> {
Application source =
applicationCacheService.getApplicationById(referenceMetric.getSource());
Application target =
applicationCacheService.getApplicationById(referenceMetric.getTarget());
if (BooleanUtils.valueToBoolean(target.getIsAddress()) &&
!mappings.containsKey(target.getApplicationId())) {
- ConjecturalNode conjecturalNode = new ConjecturalNode();
- conjecturalNode.setId(target.getApplicationId());
- conjecturalNode.setName(target.getApplicationCode());
-
conjecturalNode.setType(components.getOrDefault(target.getApplicationId(),
Const.UNKNOWN));
- nodes.add(conjecturalNode);
+ if (!nodeIds.contains(target.getApplicationId())) {
+ ConjecturalNode conjecturalNode = new ConjecturalNode();
+ conjecturalNode.setId(target.getApplicationId());
+ conjecturalNode.setName(target.getApplicationCode());
+
conjecturalNode.setType(components.getOrDefault(target.getApplicationId(),
Const.UNKNOWN));
+ nodes.add(conjecturalNode);
+ nodeIds.add(target.getApplicationId());
+ }
}
- Set<Integer> nodeIds = buildNodeIds(nodes);
- if (!nodeIds.contains(source.getApplicationId())) {
+ Set<Integer> applicationNodeIds = buildNodeIds(nodes);
+ if (!applicationNodeIds.contains(source.getApplicationId())) {
ApplicationNode applicationNode = new ApplicationNode();
applicationNode.setId(source.getApplicationId());
applicationNode.setName(source.getApplicationCode());
@@ -170,19 +177,25 @@ Topology
build(List<IApplicationComponentUIDAO.ApplicationComponent> application
Application target =
applicationCacheService.getApplicationById(referenceMetric.getTarget());
if (source.getApplicationId() == Const.NONE_APPLICATION_ID) {
- VisualUserNode visualUserNode = new VisualUserNode();
- visualUserNode.setId(source.getApplicationId());
- visualUserNode.setName(Const.USER_CODE);
- visualUserNode.setType(Const.USER_CODE.toUpperCase());
- nodes.add(visualUserNode);
+ if (!nodeIds.contains(source.getApplicationId())) {
+ VisualUserNode visualUserNode = new VisualUserNode();
+ visualUserNode.setId(source.getApplicationId());
+ visualUserNode.setName(Const.USER_CODE);
+ visualUserNode.setType(Const.USER_CODE.toUpperCase());
+ nodes.add(visualUserNode);
+ nodeIds.add(source.getApplicationId());
+ }
}
if (BooleanUtils.valueToBoolean(source.getIsAddress())) {
- ConjecturalNode conjecturalNode = new ConjecturalNode();
- conjecturalNode.setId(source.getApplicationId());
- conjecturalNode.setName(source.getApplicationCode());
-
conjecturalNode.setType(components.getOrDefault(source.getApplicationId(),
Const.UNKNOWN));
- nodes.add(conjecturalNode);
+ if (!nodeIds.contains(source.getApplicationId())) {
+ ConjecturalNode conjecturalNode = new ConjecturalNode();
+ conjecturalNode.setId(source.getApplicationId());
+ conjecturalNode.setName(source.getApplicationCode());
+
conjecturalNode.setType(components.getOrDefault(source.getApplicationId(),
Const.UNKNOWN));
+ nodeIds.add(source.getApplicationId());
+ nodes.add(conjecturalNode);
+ }
}
Call call = new Call();
@@ -248,4 +261,14 @@ Topology
build(List<IApplicationComponentUIDAO.ApplicationComponent> application
});
return components;
}
+
+ private void filterZeroSourceOrTargetReference(
+ List<IApplicationReferenceMetricUIDAO.ApplicationReferenceMetric>
referenceMetric) {
+ for (int i = referenceMetric.size() - 1; i >= 0; i--) {
+ IApplicationReferenceMetricUIDAO.ApplicationReferenceMetric
applicationReferenceMetric = referenceMetric.get(i);
+ if (applicationReferenceMetric.getSource() == 0 ||
applicationReferenceMetric.getTarget() == 0) {
+ referenceMetric.remove(i);
+ }
+ }
+ }
}
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services