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

This commit is contained in:
tomsun28
2021-12-07 14:59:26 +08:00
parent f5dce847c1
commit 86c438e3f9
2 changed files with 8 additions and 4 deletions

View File

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

View File

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