summaryrefslogtreecommitdiffstats
path: root/metrics-proxy/src
diff options
context:
space:
mode:
Diffstat (limited to 'metrics-proxy/src')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/ValuesFetcher.java15
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java4
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/metrics/MetricsHandlerTestBase.java11
3 files changed, 23 insertions, 7 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/ValuesFetcher.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/ValuesFetcher.java
index b316a620a9b..037fca95588 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/ValuesFetcher.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/ValuesFetcher.java
@@ -10,6 +10,7 @@ import ai.vespa.metricsproxy.service.VespaServices;
import java.time.Instant;
import java.util.List;
+import java.util.Optional;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -65,12 +66,14 @@ public class ValuesFetcher {
public static ConsumerId getConsumerOrDefault(String requestedConsumer, MetricsConsumers consumers) {
if (requestedConsumer == null) return defaultMetricsConsumerId;
- ConsumerId consumerId = toConsumerId(requestedConsumer);
- if (! consumers.getAllConsumers().contains(consumerId)) {
- log.info("No consumer with id '" + requestedConsumer + "' - using the default consumer instead.");
- return defaultMetricsConsumerId;
- }
- return consumerId;
+ Optional<ConsumerId> consumerId = consumers.getAllConsumers().stream()
+ .filter(consumer -> consumer.id.equalsIgnoreCase(requestedConsumer))
+ .findFirst();
+
+ if (consumerId.isPresent()) return consumerId.get();
+
+ log.info("No consumer with id '" + requestedConsumer + "' - using the default consumer instead.");
+ return defaultMetricsConsumerId;
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java
index 9ec22154627..12da0f7dcea 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java
@@ -9,7 +9,9 @@ import java.util.Objects;
public class ConsumerId {
public final String id;
- private ConsumerId(String id) { this.id = id; }
+ private ConsumerId(String id) {
+ this.id = Objects.requireNonNull(id);
+ }
public static ConsumerId toConsumerId(String id) { return new ConsumerId(id); }
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/metrics/MetricsHandlerTestBase.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/metrics/MetricsHandlerTestBase.java
index 1c6a09c3ee0..b6521a89ce7 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/metrics/MetricsHandlerTestBase.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/metrics/MetricsHandlerTestBase.java
@@ -13,6 +13,7 @@ import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException;
+import java.util.Locale;
import static ai.vespa.metricsproxy.metric.dimensions.PublicDimensions.INTERNAL_SERVICE_ID;
import static ai.vespa.metricsproxy.metric.dimensions.PublicDimensions.REASON;
@@ -151,6 +152,16 @@ public abstract class MetricsHandlerTestBase<MODEL> extends HttpHandlerTestBase
assertEquals("custom-val", dummy1Metrics.dimensions.get(REASON));
}
+ @Test
+ public void consumer_name_is_case_insensitive() {
+ GenericJsonModel jsonModel = getResponseAsGenericJsonModel(CUSTOM_CONSUMER.toUpperCase(Locale.ROOT));
+ GenericService dummyService = jsonModel.services.get(0);
+ GenericMetrics dummy0Metrics = getMetricsForService("dummy0", dummyService);
+
+ // If name was case-sensitive, this would be the default value.
+ assertEquals("custom-val", dummy0Metrics.dimensions.get(REASON));
+ }
+
private static GenericMetrics getMetricsForService(String serviceInstance, GenericService service) {
for (var metrics : service.metrics) {
if (getServiceIdDimension(metrics).equals(serviceInstance))