소스 검색

[collector] bugfix-采集器返回数据字段与值list映射问题,调度遇空job异常

tomsun28 4 년 전
부모
커밋
86c438e3f9

+ 6 - 3
collector/server/src/main/java/com/usthe/collector/dispatch/MetricsCollect.java

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -148,9 +149,11 @@ public class MetricsCollect implements Runnable, Comparable<MetricsCollect> {
      * @param collectData 采集数据
      */
     private void calculateFields(Metrics metrics, CollectRep.MetricsData.Builder collectData) {
-        collectData.addAllFields(metrics.getFields().stream().map(item ->
-            CollectRep.Field.newBuilder().setName(item.getField()).setType(item.getType()).build()
-        ).collect(Collectors.toSet()));
+        List<CollectRep.Field> fieldList = new LinkedList<>();
+        for (Metrics.Field field : metrics.getFields()) {
+            fieldList.add(CollectRep.Field.newBuilder().setName(field.getField()).setType(field.getType()).build());
+        }
+        collectData.addAllFields(fieldList);
         List<CollectRep.ValueRow> aliasRowList = collectData.getValuesList();
         if (aliasRowList == null || aliasRowList.isEmpty()) {
             return;

+ 2 - 1
warehouse/src/main/java/com/usthe/warehouse/controller/MetricsDataController.java

@@ -53,7 +53,8 @@ public class MetricsDataController {
                     .time(redisData.getTime());
             List<Field> fields = redisData.getFieldsList().stream().map(redisField ->
                             Field.builder().name(redisField.getName())
-                                    .type(Integer.valueOf(redisField.getType()).byteValue()).build())
+                                    .type(Integer.valueOf(redisField.getType()).byteValue())
+                                    .build())
                     .collect(Collectors.toList());
             dataBuilder.fields(fields);
             List<ValueRow> valueRows = redisData.getValuesList().stream().map(redisValueRow ->