aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-01-14 16:07:22 +0100
committergjoranv <gv@verizonmedia.com>2020-01-14 16:07:41 +0100
commitfd2b59ab0c025e63c353edd4657b6582abb4097b (patch)
tree300830712f017a5314b4ea760a8c3b4557d7caa3 /metrics-proxy
parent6d09bcb10d27f3980547cd5ea24cefdd6e115ee1 (diff)
Enable the default public metrics consumer in hosted Vespa.
- Always filter this consumer from yamas routing, as the effect of including it is uncertain.
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java11
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java25
2 files changed, 33 insertions, 3 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java
index 9487b65a650..d2838d5b1d2 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java
@@ -16,6 +16,7 @@ import java.util.Map;
import java.util.logging.Logger;
import java.util.stream.Collectors;
+import static ai.vespa.metricsproxy.http.ValuesFetcher.DEFAULT_PUBLIC_CONSUMER_ID;
import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId;
import static com.yahoo.stream.CustomCollectors.toLinkedMap;
import static java.util.Collections.emptyList;
@@ -112,15 +113,19 @@ public class YamasJsonUtil {
Map.Entry::getValue));
}
- if (packet.consumers().isEmpty()) model.routing = null;
- else model.routing = ImmutableMap.of(YAMAS_ROUTING, toYamasJsonNamespaces(packet.consumers()));
+ YamasJsonModel.YamasJsonNamespace namespaces = toYamasJsonNamespaces(packet.consumers());
+ if (namespaces.namespaces.isEmpty()) model.routing = null;
+ else model.routing = ImmutableMap.of(YAMAS_ROUTING, namespaces);
return model;
}
private static YamasJsonModel.YamasJsonNamespace toYamasJsonNamespaces(Collection<ConsumerId> consumers) {
YamasJsonModel.YamasJsonNamespace namespaces = new YamasJsonModel.YamasJsonNamespace();
- namespaces.namespaces = consumers.stream().map(consumer -> consumer.id).collect(Collectors.toList());
+ namespaces.namespaces = consumers.stream()
+ .filter(consumerId -> consumerId != DEFAULT_PUBLIC_CONSUMER_ID)
+ .map(consumer -> consumer.id)
+ .collect(Collectors.toList());
return namespaces;
}
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java
index cdef510e73b..d3a5622d263 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java
@@ -5,10 +5,15 @@ import ai.vespa.metricsproxy.metric.model.MetricsPacket;
import org.junit.Test;
import java.util.List;
+import java.util.Set;
+import static ai.vespa.metricsproxy.core.VespaMetrics.VESPA_CONSUMER_ID;
+import static ai.vespa.metricsproxy.http.ValuesFetcher.DEFAULT_PUBLIC_CONSUMER_ID;
import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId;
+import static ai.vespa.metricsproxy.metric.model.json.YamasJsonUtil.YAMAS_ROUTING;
import static ai.vespa.metricsproxy.metric.model.json.YamasJsonUtil.toMetricsPackets;
import static java.util.Collections.singleton;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -53,6 +58,26 @@ public class YamasJsonUtilTest {
}
@Test
+ public void default_public_consumer_is_filtered_from_yamas_routing() {
+ MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo"))
+ .addConsumers(Set.of(VESPA_CONSUMER_ID, DEFAULT_PUBLIC_CONSUMER_ID))
+ .build();
+ YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0);
+ List<String> namespaces = jsonModel.routing.get(YAMAS_ROUTING).namespaces;
+ assertEquals(1, namespaces.size());
+ assertEquals(VESPA_CONSUMER_ID.id, namespaces.get(0));
+ }
+
+ @Test
+ public void only_default_public_consumer_yields_null_routing_in_json_model() {
+ MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo"))
+ .addConsumers(Set.of(DEFAULT_PUBLIC_CONSUMER_ID))
+ .build();
+ YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0);
+ assertNull(jsonModel.routing);
+ }
+
+ @Test
public void empty_json_string_yields_empty_packet_list() {
List<MetricsPacket.Builder> builders = toMetricsPackets("");
assertTrue(builders.isEmpty());