From ace860fb5eb498505e397b1fdcda39b7a96953fa Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Mon, 7 Dec 2020 22:22:07 +0100 Subject: [PATCH] analticis: imprive handling for valueless tags --- .../consumer/analytics/AnalyticsConsumerConfiguration.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java b/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java index b35f2b01..fbbb1f54 100644 --- a/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java +++ b/functions/consumer/analytics-consumer/src/main/java/org/springframework/cloud/fn/consumer/analytics/AnalyticsConsumerConfiguration.java @@ -117,14 +117,15 @@ public class AnalyticsConsumerConfiguration { } if ((value instanceof Collection) || ObjectUtils.isArray(value)) { + Collection valueCollection = (value instanceof Collection) ? (Collection) value : Arrays.asList(ObjectUtils.toObjectArray(value)); - - return valueCollection.stream() + List list = valueCollection.stream() .filter(Objects::nonNull) .map(Object::toString) .filter(StringUtils::hasText) .collect(Collectors.toList()); + return CollectionUtils.isEmpty(list) ? Collections.singletonList("n.a") : list; } else { return Collections.singletonList(value.toString()); @@ -134,7 +135,7 @@ public class AnalyticsConsumerConfiguration { private void recordMetrics(MeterRegistry[] meterRegistries, String meterName, Tags fixedTags, Map> groupedTags, double amount, AnalyticsConsumerProperties.MeterType meterType) { if (!CollectionUtils.isEmpty(groupedTags)) { - groupedTags.values().stream().map(List::size).max(Integer::compareTo).ifPresent( + groupedTags.values().stream().map(List::size).max(Integer::compareTo).ifPresent( max -> { for (int i = 0; i < max; i++) { Tags currentTags = Tags.of(fixedTags);