[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.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;

View File

@@ -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 ->