diff options
12 files changed, 119 insertions, 48 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java new file mode 100644 index 00000000000..6148e864373 --- /dev/null +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java @@ -0,0 +1,41 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package ai.vespa.metricsproxy.core; + +import ai.vespa.metricsproxy.metric.model.Dimension; +import ai.vespa.metricsproxy.metric.model.DimensionId; +import ai.vespa.metricsproxy.metric.model.MetricId; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class ConfiguredMetric { + private final MetricId name; + private final String description; + private final String outputname; + private final List<Dimension> dimension; + public ConfiguredMetric(ConsumersConfig.Consumer.Metric m) { + name = MetricId.toMetricId(m.name()); + outputname = m.outputname(); + description = m.description(); + dimension = new ArrayList<>(m.dimension().size()); + m.dimension().forEach(d -> dimension.add(new Dimension(DimensionId.toDimensionId(d.key()), d.value()))); + } + public MetricId id() { return name; } + public String outputname() { return outputname; } + public String description() { return description; } + public List<Dimension> dimension() { return dimension; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ConfiguredMetric that = (ConfiguredMetric) o; + return name.equals(that.name) && description.equals(that.description) && outputname.equals(that.outputname) && dimension.equals(that.dimension); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, outputname, dimension); + } +} diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsConsumers.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsConsumers.java index 99d7b9fe8bf..82f341ec64d 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsConsumers.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsConsumers.java @@ -28,14 +28,14 @@ import static java.util.stream.Collectors.collectingAndThen; public class MetricsConsumers { // All metrics for each consumer. - private final Map<ConsumerId, List<Consumer.Metric>> consumerMetrics; + private final Map<ConsumerId, List<ConfiguredMetric>> consumerMetrics; // All consumers for each metric (more useful than the opposite map). - private final Map<Consumer.Metric, List<ConsumerId>> consumersByMetric; + private final Map<ConfiguredMetric, List<ConsumerId>> consumersByMetric; public MetricsConsumers(ConsumersConfig config) { consumerMetrics = config.consumer().stream().collect( - toUnmodifiableLinkedMap(consumer -> toConsumerId(consumer.name()), Consumer::metric)); + toUnmodifiableLinkedMap(consumer -> toConsumerId(consumer.name()), consumer -> convert(consumer.metric()))); consumersByMetric = createConsumersByMetric(consumerMetrics); } @@ -44,11 +44,11 @@ public class MetricsConsumers { * @param consumer The consumer * @return The metrics for the given consumer. */ - public List<Consumer.Metric> getMetricDefinitions(ConsumerId consumer) { + public List<ConfiguredMetric> getMetricDefinitions(ConsumerId consumer) { return consumerMetrics.get(consumer); } - public Map<Consumer.Metric, List<ConsumerId>> getConsumersByMetric() { + public Map<ConfiguredMetric, List<ConsumerId>> getConsumersByMetric() { return consumersByMetric; } @@ -60,9 +60,9 @@ public class MetricsConsumers { * Helper function to create mapping from metric to consumers. * TODO: consider reversing the mapping in metrics-consumers.def instead: metric{}.consumer[] */ - private static Map<Consumer.Metric, List<ConsumerId>> - createConsumersByMetric(Map<ConsumerId, List<Consumer.Metric>> metricsByConsumer) { - Map<Consumer.Metric, List<ConsumerId>> consumersByMetric = new LinkedHashMap<>(); + private static Map<ConfiguredMetric, List<ConsumerId>> + createConsumersByMetric(Map<ConsumerId, List<ConfiguredMetric>> metricsByConsumer) { + Map<ConfiguredMetric, List<ConsumerId>> consumersByMetric = new LinkedHashMap<>(); metricsByConsumer.forEach( (consumer, metrics) -> metrics.forEach( metric -> consumersByMetric.computeIfAbsent(metric, unused -> new ArrayList<>()) @@ -75,4 +75,10 @@ public class MetricsConsumers { return collectingAndThen(toLinkedMap(keyMapper, valueMapper), Collections::unmodifiableMap); } + private List<ConfiguredMetric> convert(List<Consumer.Metric> configMetrics) { + List<ConfiguredMetric> metrics = new ArrayList<>(configMetrics.size()); + configMetrics.forEach(m -> metrics.add(new ConfiguredMetric(m))); + return metrics; + } + } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java index f563dd27b86..68f53e3de04 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java @@ -8,6 +8,7 @@ import ai.vespa.metricsproxy.metric.Metric; import ai.vespa.metricsproxy.metric.Metrics; import ai.vespa.metricsproxy.metric.MetricsFormatter; import ai.vespa.metricsproxy.metric.model.ConsumerId; +import ai.vespa.metricsproxy.metric.model.Dimension; import ai.vespa.metricsproxy.metric.model.DimensionId; import ai.vespa.metricsproxy.metric.model.MetricsPacket; import ai.vespa.metricsproxy.service.VespaService; @@ -26,7 +27,6 @@ import java.util.stream.Collectors; import static ai.vespa.metricsproxy.metric.dimensions.PublicDimensions.INTERNAL_SERVICE_ID; import static ai.vespa.metricsproxy.metric.model.ConsumerId.toConsumerId; import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId; -import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId; import static com.google.common.base.Strings.isNullOrEmpty; /** @@ -51,7 +51,7 @@ public class VespaMetrics { List<MetricsPacket> result = new ArrayList<>(); for (VespaService s : services) { HealthMetric h = s.getHealth(); - MetricsPacket.Builder builder = new MetricsPacket.Builder(toServiceId(s.getMonitoringName())) + MetricsPacket.Builder builder = new MetricsPacket.Builder(s.getMonitoringName()) .statusCode(h.isOk() ? 0 : 1) .statusMessage(h.getMessage()) .putDimension(METRIC_TYPE_DIMENSION_ID, "health") @@ -70,7 +70,7 @@ public class VespaMetrics { public List<MetricsPacket.Builder> getMetrics(List<VespaService> services) { List<MetricsPacket.Builder> metricsPackets = new ArrayList<>(); - Map<ConsumersConfig.Consumer.Metric, List<ConsumerId>> consumersByMetric = metricsConsumers.getConsumersByMetric(); + Map<ConfiguredMetric, List<ConsumerId>> consumersByMetric = metricsConsumers.getConsumersByMetric(); for (VespaService service : services) { // One metrics packet for system metrics @@ -87,7 +87,7 @@ public class VespaMetrics { Map<AggregationKey, List<Metric>> aggregatedMetrics = aggregateMetrics(service.getDimensions(), serviceMetrics); aggregatedMetrics.forEach((aggregationKey, metrics) -> { - MetricsPacket.Builder builder = new MetricsPacket.Builder(toServiceId(service.getMonitoringName())) + MetricsPacket.Builder builder = new MetricsPacket.Builder(service.getMonitoringName()) .putMetrics(metrics) .putDimension(METRIC_TYPE_DIMENSION_ID, "standard") .putDimension(INSTANCE_DIMENSION_ID, service.getInstanceName()) @@ -107,7 +107,7 @@ public class VespaMetrics { private MetricsPacket.Builder getHealth(VespaService service) { HealthMetric health = service.getHealth(); - return new MetricsPacket.Builder(toServiceId(service.getMonitoringName())) + return new MetricsPacket.Builder(service.getMonitoringName()) .timestamp(System.currentTimeMillis() / 1000) .statusCode(health.getStatus().ordinal()) // TODO: MetricsPacket should use StatusCode instead of int .statusMessage(health.getMessage()) @@ -121,7 +121,7 @@ public class VespaMetrics { * In order to include a metric, it must exist in the given map of metric to consumers. * Each returned metric will contain a collection of consumers that it should be routed to. */ - private Metrics getServiceMetrics(Metrics allServiceMetrics, Map<ConsumersConfig.Consumer.Metric, List<ConsumerId>> consumersByMetric) { + private Metrics getServiceMetrics(Metrics allServiceMetrics, Map<ConfiguredMetric, List<ConsumerId>> consumersByMetric) { Metrics configuredServiceMetrics = new Metrics(); configuredServiceMetrics.setTimeStamp(getMostRecentTimestamp(allServiceMetrics)); for (Metric candidate : allServiceMetrics.getMetrics()) { @@ -132,10 +132,10 @@ public class VespaMetrics { return configuredServiceMetrics; } - private Map<DimensionId, String> extractDimensions(Map<DimensionId, String> dimensions, List<ConsumersConfig.Consumer.Metric.Dimension> configuredDimensions) { + private Map<DimensionId, String> extractDimensions(Map<DimensionId, String> dimensions, List<Dimension> configuredDimensions) { if ( ! configuredDimensions.isEmpty()) { Map<DimensionId, String> dims = new HashMap<>(dimensions); - configuredDimensions.forEach(d -> dims.put(toDimensionId(d.key()), d.value())); + configuredDimensions.forEach(d -> dims.put(d.key(), d.value())); dimensions = Collections.unmodifiableMap(dims); } return dimensions; @@ -155,8 +155,8 @@ public class VespaMetrics { } private Metric metricWithConfigProperties(Metric candidate, - ConsumersConfig.Consumer.Metric configuredMetric, - Map<ConsumersConfig.Consumer.Metric, List<ConsumerId>> consumersByMetric) { + ConfiguredMetric configuredMetric, + Map<ConfiguredMetric, List<ConsumerId>> consumersByMetric) { Metric metric = candidate.clone(); metric.setDimensions(extractDimensions(candidate.getDimensions(), configuredMetric.dimension())); metric.setConsumers(extractConsumers(consumersByMetric.get(configuredMetric))); @@ -169,10 +169,9 @@ public class VespaMetrics { /** * Returns all configured metrics (for any consumer) that have the given id as 'name'. */ - private static Set<ConsumersConfig.Consumer.Metric> getConfiguredMetrics(String id, - Set<ConsumersConfig.Consumer.Metric> configuredMetrics) { + private static Set<ConfiguredMetric> getConfiguredMetrics(String id, Set<ConfiguredMetric> configuredMetrics) { return configuredMetrics.stream() - .filter(m -> m.name().equals(id)) + .filter(m -> m.id().id.equals(id)) .collect(Collectors.toSet()); } @@ -180,7 +179,7 @@ public class VespaMetrics { Metrics systemMetrics = service.getSystemMetrics(); if (systemMetrics.size() == 0) return Optional.empty(); - MetricsPacket.Builder builder = new MetricsPacket.Builder(toServiceId(service.getMonitoringName())); + MetricsPacket.Builder builder = new MetricsPacket.Builder(service.getMonitoringName()); setMetaInfo(builder, systemMetrics.getTimeStamp()); builder.putDimension(METRIC_TYPE_DIMENSION_ID, "system") @@ -223,10 +222,10 @@ public class VespaMetrics { return aggregatedMetrics; } - private List<ConsumersConfig.Consumer.Metric> getMetricDefinitions(ConsumerId consumer) { + private List<ConfiguredMetric> getMetricDefinitions(ConsumerId consumer) { if (metricsConsumers == null) return Collections.emptyList(); - List<ConsumersConfig.Consumer.Metric> definitions = metricsConsumers.getMetricDefinitions(consumer); + List<ConfiguredMetric> definitions = metricsConsumers.getMetricDefinitions(consumer); return definitions == null ? Collections.emptyList() : definitions; } @@ -248,8 +247,8 @@ public class VespaMetrics { String alias = key; boolean isForwarded = false; - for (ConsumersConfig.Consumer.Metric metricConsumer : getMetricDefinitions(vespaMetricsConsumerId)) { - if (metricConsumer.name().equals(key)) { + for (ConfiguredMetric metricConsumer : getMetricDefinitions(vespaMetricsConsumerId)) { + if (metricConsumer.id().id.equals(key)) { alias = metricConsumer.outputname(); isForwarded = true; } @@ -277,8 +276,8 @@ public class VespaMetrics { String alias = ""; boolean isForwarded = false; - for (ConsumersConfig.Consumer.Metric metric : getMetricDefinitions(consumer)) { - if (metric.name().equals(m.getName())) { + for (ConfiguredMetric metric : getMetricDefinitions(consumer)) { + if (metric.id().id.equals(m.getName())) { alias = metric.outputname(); isForwarded = true; if (description.isEmpty()) { diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/ExternalMetrics.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/ExternalMetrics.java index 6818a6b991f..e39f34c43ce 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/ExternalMetrics.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/ExternalMetrics.java @@ -1,8 +1,8 @@ // Copyright 2020 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package ai.vespa.metricsproxy.metric; +import ai.vespa.metricsproxy.core.ConfiguredMetric; import ai.vespa.metricsproxy.core.MetricsConsumers; -import ai.vespa.metricsproxy.core.ConsumersConfig.Consumer; import ai.vespa.metricsproxy.metric.model.DimensionId; import ai.vespa.metricsproxy.metric.model.MetricId; import ai.vespa.metricsproxy.metric.model.MetricsPacket; @@ -19,7 +19,6 @@ import java.util.Set; import java.util.logging.Logger; import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId; -import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId; import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId; import static java.util.logging.Level.FINE; import static java.util.stream.Collectors.toCollection; @@ -66,7 +65,7 @@ public class ExternalMetrics { private Set<MetricId> metricsToRetain() { return consumers.getConsumersByMetric().keySet().stream() - .map(configuredMetric -> toMetricId(configuredMetric.name())) + .map(configuredMetric -> configuredMetric.id()) .collect(toCollection(LinkedHashSet::new)); } @@ -76,9 +75,8 @@ public class ExternalMetrics { */ private Map<MetricId, List<String>> outputNamesById() { Map<MetricId, List<String>> outputNamesById = new LinkedHashMap<>(); - for (Consumer.Metric metric : consumers.getConsumersByMetric().keySet()) { - MetricId id = toMetricId(metric.name()); - outputNamesById.computeIfAbsent(id, unused -> new ArrayList<>()) + for (ConfiguredMetric metric : consumers.getConsumersByMetric().keySet()) { + outputNamesById.computeIfAbsent(metric.id(), unused -> new ArrayList<>()) .add(metric.outputname()); } return outputNamesById; diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/Dimension.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/Dimension.java new file mode 100644 index 00000000000..b5e61f38ab5 --- /dev/null +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/Dimension.java @@ -0,0 +1,13 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package ai.vespa.metricsproxy.metric.model; + +public final class Dimension { + private final DimensionId key; + private final String value; + public Dimension(DimensionId key, String value) { + this.key = key; + this.value = value; + } + public DimensionId key() { return key; } + public String value() { return value; } +} diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/DimensionId.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/DimensionId.java index c99e54f2607..3804794804b 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/DimensionId.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/DimensionId.java @@ -6,7 +6,7 @@ import java.util.Objects; /** * @author gjoranv */ -public class DimensionId { +public final class DimensionId { public final String id; private DimensionId(String id) { this.id = id; } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricsPacket.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricsPacket.java index 2d5cd9acb5d..4e60838270a 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricsPacket.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricsPacket.java @@ -6,6 +6,7 @@ import ai.vespa.metricsproxy.metric.Metric; import java.time.Instant; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -90,7 +91,7 @@ public class MetricsPacket { private long timestamp = 0L; private Map<MetricId, Number> metrics = new LinkedHashMap<>(); private final Map<DimensionId, String> dimensions = new LinkedHashMap<>(); - private final Set<ConsumerId> consumers = new LinkedHashSet<>(); + private Set<ConsumerId> consumers = Collections.emptySet(); public Builder(ServiceId service) { Objects.requireNonNull(service, "Service cannot be null."); @@ -177,7 +178,20 @@ public class MetricsPacket { } public Builder addConsumers(Set<ConsumerId> extraConsumers) { - if (extraConsumers != null) consumers.addAll(extraConsumers); + if ((extraConsumers != null) && !extraConsumers.isEmpty()) { + if (consumers.isEmpty()) { + if (extraConsumers.size() == 1) { + consumers = Collections.singleton(extraConsumers.iterator().next()); + return this; + } + consumers = new LinkedHashSet<>(extraConsumers.size()); + } else if (consumers.size() == 1) { + var copy = new LinkedHashSet<ConsumerId>(extraConsumers.size() + 1); + copy.addAll(consumers); + consumers = copy; + } + consumers.addAll(extraConsumers); + } return this; } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/node/ServiceHealthGatherer.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/node/ServiceHealthGatherer.java index a11acf07156..4a6eeae474a 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/node/ServiceHealthGatherer.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/node/ServiceHealthGatherer.java @@ -4,7 +4,6 @@ package ai.vespa.metricsproxy.node; import ai.vespa.metricsproxy.metric.model.ConsumerId; import ai.vespa.metricsproxy.metric.model.DimensionId; import ai.vespa.metricsproxy.metric.model.MetricsPacket; -import ai.vespa.metricsproxy.metric.model.ServiceId; import ai.vespa.metricsproxy.service.VespaServices; import java.time.Instant; @@ -21,7 +20,7 @@ public class ServiceHealthGatherer { return vespaServices.getVespaServices() .stream() .map(service -> - new MetricsPacket.Builder(ServiceId.toServiceId(service.getMonitoringName())) + new MetricsPacket.Builder(service.getMonitoringName()) .timestamp(Instant.now().getEpochSecond()) .statusMessage(service.getHealth().getStatus().status) .statusCode(service.getHealth().getStatus().code) diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java index b069256f527..9d165b2d5a9 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaService.java @@ -4,6 +4,7 @@ package ai.vespa.metricsproxy.service; import ai.vespa.metricsproxy.metric.HealthMetric; import ai.vespa.metricsproxy.metric.Metrics; import ai.vespa.metricsproxy.metric.model.DimensionId; +import ai.vespa.metricsproxy.metric.model.ServiceId; import java.util.Collections; import java.util.Map; @@ -24,7 +25,7 @@ public class VespaService implements Comparable<VespaService> { private final String instanceName; private final String configId; private final String serviceName; - private final String monitoringPrefix; + private final ServiceId serviceId; private final Map<DimensionId, String> dimensions; private volatile int pid = -1; @@ -67,7 +68,7 @@ public class VespaService implements Comparable<VespaService> { Map<DimensionId, String> dimensions) { this.serviceName = serviceName; this.instanceName = instanceName; - this.monitoringPrefix = monitoringPrefix; + serviceId = ServiceId.toServiceId(monitoringPrefix + SEPARATOR + serviceName); this.configId = configId; this.statePort = statePort; this.dimensions = dimensions; @@ -81,8 +82,8 @@ public class VespaService implements Comparable<VespaService> { * The name used for this service in the monitoring system: * monitoring-system-name.serviceName */ - public String getMonitoringName() { - return monitoringPrefix + SEPARATOR + serviceName; + public ServiceId getMonitoringName() { + return serviceId; } @Override diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaServices.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaServices.java index b0ea7e709a1..8d846d17553 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaServices.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/VespaServices.java @@ -105,7 +105,7 @@ public class VespaServices { List<VespaService> myServices = new ArrayList<>(); for (VespaService s : services) { log.log(FINE, () -> "getMonitoringServices. service=" + service + ", checking against " + s + ", which has monitoring name " + s.getMonitoringName()); - if (s.getMonitoringName().equalsIgnoreCase(service)) { + if (s.getMonitoringName().id.equalsIgnoreCase(service)) { myServices.add(s); } } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcHealthMetricsTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcHealthMetricsTest.java index ac5fae9a727..ba46c2d1066 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcHealthMetricsTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcHealthMetricsTest.java @@ -53,7 +53,7 @@ public class RpcHealthMetricsTest { assertThat("Status should be failed" + h.getMessage(), h.isOk(), is(false)); assertThat(h.getMessage(), is("SOMETHING FAILED")); - String jsonRPCMessage = getHealthMetrics(tester, qrserver.getMonitoringName()); + String jsonRPCMessage = getHealthMetrics(tester, qrserver.getMonitoringName().id); assertThat(jsonRPCMessage, is(WANTED_RPC_RESPONSE)); } } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java index 70970bfe8da..f4acb8c312f 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java @@ -103,7 +103,7 @@ public class RpcMetricsTest { assertThat("#Services should be 1 for config id " + SERVICE_1_CONFIG_ID, services.size(), is(1)); VespaService qrserver = services.get(0); - assertThat(qrserver.getMonitoringName(), is(MONITORING_SYSTEM + VespaService.SEPARATOR + "qrserver")); + assertThat(qrserver.getMonitoringName().id, is(MONITORING_SYSTEM + VespaService.SEPARATOR + "qrserver")); Metrics metrics = qrserver.getMetrics(); assertThat("Fetched number of metrics is not correct", metrics.size(), is(2)); @@ -134,7 +134,7 @@ public class RpcMetricsTest { } private static void verifyMetricsFromRpcRequest(VespaService service, RpcClient client) throws IOException { - String jsonResponse = getMetricsForYamas(service.getMonitoringName(), client).trim(); + String jsonResponse = getMetricsForYamas(service.getMonitoringName().id, client).trim(); ArrayNode metrics = (ArrayNode) jsonMapper.readTree(jsonResponse).get("metrics"); assertThat("Expected 3 metric messages", metrics.size(), is(3)); for (int i = 0; i < metrics.size() - 1; i++) { // The last "metric message" contains only status code/message @@ -193,7 +193,7 @@ public class RpcMetricsTest { assertNotNull("Did not find expected metric with name 'bar'", m2); try (RpcClient rpcClient = new RpcClient(tester.rpcPort())) { - String response = getAllMetricNamesForService(services.get(0).getMonitoringName(), vespaMetricsConsumerId, rpcClient); + String response = getAllMetricNamesForService(services.get(0).getMonitoringName().id, vespaMetricsConsumerId, rpcClient); assertThat(response, is("foo.count=ON;output-name=foo_count,bar.count=OFF,")); } } |