aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java6
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsConsumers.java3
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsManager.java6
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/VespaMetrics.java29
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/AggregationKey.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/ExternalMetrics.java15
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metric.java15
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metrics.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ConsumerId.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/DimensionId.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricsPacket.java8
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ServiceId.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java3
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtil.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java9
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java8
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/core/MetricsManagerTest.java11
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/HttpHandlerTestBase.java3
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/MetricsTest.java13
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/MetricsPacketTest.java21
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java11
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ContainerServiceTest.java3
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java5
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java5
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java3
27 files changed, 103 insertions, 108 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
index 6148e864373..290a15312a9 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/ConfiguredMetric.java
@@ -12,17 +12,17 @@ import java.util.Objects;
public class ConfiguredMetric {
private final MetricId name;
private final String description;
- private final String outputname;
+ private final MetricId outputname;
private final List<Dimension> dimension;
public ConfiguredMetric(ConsumersConfig.Consumer.Metric m) {
name = MetricId.toMetricId(m.name());
- outputname = m.outputname();
+ outputname = MetricId.toMetricId(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 MetricId outputname() { return outputname; }
public String description() { return description; }
public List<Dimension> dimension() { return 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 82f341ec64d..8691b569a95 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
@@ -14,7 +14,6 @@ import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collector;
-import static ai.vespa.metricsproxy.metric.model.ConsumerId.toConsumerId;
import static com.yahoo.stream.CustomCollectors.toLinkedMap;
import static java.util.Collections.unmodifiableSet;
import static java.util.stream.Collectors.collectingAndThen;
@@ -35,7 +34,7 @@ public class MetricsConsumers {
public MetricsConsumers(ConsumersConfig config) {
consumerMetrics = config.consumer().stream().collect(
- toUnmodifiableLinkedMap(consumer -> toConsumerId(consumer.name()), consumer -> convert(consumer.metric())));
+ toUnmodifiableLinkedMap(consumer -> ConsumerId.toConsumerId(consumer.name()), consumer -> convert(consumer.metric())));
consumersByMetric = createConsumersByMetric(consumerMetrics);
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsManager.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsManager.java
index 53398073314..d098b56c302 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsManager.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/core/MetricsManager.java
@@ -22,7 +22,6 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
import static ai.vespa.metricsproxy.metric.ExternalMetrics.extractConfigserverDimensions;
-import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId;
import static java.util.logging.Level.FINE;
import static java.util.stream.Collectors.toList;
@@ -35,7 +34,7 @@ public class MetricsManager {
private static final Logger log = Logger.getLogger(MetricsManager.class.getName());
- static final DimensionId VESPA_VERSION = toDimensionId("vespaVersion");
+ static final DimensionId VESPA_VERSION = DimensionId.toDimensionId("vespaVersion");
private final VespaServices vespaServices;
private final VespaMetrics vespaMetrics;
@@ -106,8 +105,9 @@ public class MetricsManager {
result.addAll(externalPackets);
+ Map<DimensionId, String> globalDims = getGlobalDimensions();
return result.stream()
- .map(builder -> builder.putDimensionsIfAbsent(getGlobalDimensions()))
+ .map(builder -> builder.putDimensionsIfAbsent(globalDims))
.map(builder -> builder.putDimensionsIfAbsent(extraDimensions))
.map(builder -> adjustTimestamp(builder, startTime))
.collect(Collectors.toList());
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 68f53e3de04..0c83d8f73c4 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
@@ -10,13 +10,13 @@ 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.MetricId;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
import ai.vespa.metricsproxy.service.VespaService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -25,16 +25,14 @@ import java.util.Set;
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 com.google.common.base.Strings.isNullOrEmpty;
/**
* @author gjoranv
*/
public class VespaMetrics {
- public static final ConsumerId vespaMetricsConsumerId = toConsumerId("Vespa");
+ public static final ConsumerId vespaMetricsConsumerId = ConsumerId.toConsumerId("Vespa");
public static final DimensionId METRIC_TYPE_DIMENSION_ID = toDimensionId("metrictype");
public static final DimensionId INSTANCE_DIMENSION_ID = toDimensionId(INTERNAL_SERVICE_ID);
@@ -147,8 +145,7 @@ public class VespaMetrics {
if ( configuredConsumers.size() == 1) {
consumers = Collections.singleton(configuredConsumers.get(0));
} else if (configuredConsumers.size() > 1){
- consumers = new HashSet<>(configuredConsumers);
- consumers = Collections.unmodifiableSet(consumers);
+ consumers = Set.copyOf(configuredConsumers);
}
}
return consumers;
@@ -161,7 +158,7 @@ public class VespaMetrics {
metric.setDimensions(extractDimensions(candidate.getDimensions(), configuredMetric.dimension()));
metric.setConsumers(extractConsumers(consumersByMetric.get(configuredMetric)));
- if (!isNullOrEmpty(configuredMetric.outputname()))
+ if (configuredMetric.outputname() != null && !configuredMetric.outputname().id.isEmpty())
metric.setName(configuredMetric.outputname());
return metric;
}
@@ -169,9 +166,9 @@ public class VespaMetrics {
/**
* Returns all configured metrics (for any consumer) that have the given id as 'name'.
*/
- private static Set<ConfiguredMetric> getConfiguredMetrics(String id, Set<ConfiguredMetric> configuredMetrics) {
+ private static Set<ConfiguredMetric> getConfiguredMetrics(MetricId id, Set<ConfiguredMetric> configuredMetrics) {
return configuredMetrics.stream()
- .filter(m -> m.id().id.equals(id))
+ .filter(m -> m.id().equals(id))
.collect(Collectors.toSet());
}
@@ -243,18 +240,18 @@ public class VespaMetrics {
StringBuilder b = new StringBuilder();
for (VespaService s : services) {
for (Metric metric : s.getMetrics().getMetrics()) {
- String key = metric.getName();
- String alias = key;
+ MetricId key = metric.getName();
+ MetricId alias = key;
boolean isForwarded = false;
for (ConfiguredMetric metricConsumer : getMetricDefinitions(vespaMetricsConsumerId)) {
- if (metricConsumer.id().id.equals(key)) {
+ if (metricConsumer.id().equals(key)) {
alias = metricConsumer.outputname();
isForwarded = true;
}
}
if (isForwarded) {
- b.append(formatter.format(s, alias, metric.getValue())).append(" ");
+ b.append(formatter.format(s, alias.id, metric.getValue())).append(" ");
}
}
}
@@ -273,11 +270,11 @@ public class VespaMetrics {
for (Metric m : s.getMetrics().getMetrics()) {
String description = m.getDescription();
- String alias = "";
+ MetricId alias = MetricId.empty;
boolean isForwarded = false;
for (ConfiguredMetric metric : getMetricDefinitions(consumer)) {
- if (metric.id().id.equals(m.getName())) {
+ if (metric.id().equals(m.getName())) {
alias = metric.outputname();
isForwarded = true;
if (description.isEmpty()) {
@@ -296,7 +293,7 @@ public class VespaMetrics {
if (!description.isEmpty()) {
buffer.append(";description=").append(description);
}
- if (!alias.isEmpty()) {
+ if (!alias.id.isEmpty()) {
buffer.append(";output-name=").append(alias);
}
buffer.append(',');
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/AggregationKey.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/AggregationKey.java
index ae79e891e3d..dbc502d24ba 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/AggregationKey.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/AggregationKey.java
@@ -14,8 +14,8 @@ import java.util.Set;
*/
public final class AggregationKey {
- private Map<DimensionId, String> dimensions;
- private Set<ConsumerId> consumers;
+ private final Map<DimensionId, String> dimensions;
+ private final Set<ConsumerId> consumers;
public AggregationKey(Map<DimensionId, String> dimensions, Set<ConsumerId> consumers) {
this.dimensions = dimensions;
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 e39f34c43ce..f8d2184a454 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
@@ -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.ServiceId.toServiceId;
import static java.util.logging.Level.FINE;
import static java.util.stream.Collectors.toCollection;
@@ -33,7 +32,7 @@ public class ExternalMetrics {
private static final Logger log = Logger.getLogger(ExternalMetrics.class.getName());
// NOTE: node service id must be kept in sync with the same constant _value_ used in node-admin:Metrics.java
- public static final ServiceId VESPA_NODE_SERVICE_ID = toServiceId("vespa.node");
+ public static final ServiceId VESPA_NODE_SERVICE_ID = ServiceId.toServiceId("vespa.node");
public static final DimensionId ROLE_DIMENSION = toDimensionId("role");
public static final DimensionId STATE_DIMENSION = toDimensionId("state");
@@ -55,11 +54,9 @@ public class ExternalMetrics {
// Split each packet per metric, and re-aggregate based on the metrics each consumer wants.
// Then filter out all packages with no consumers.
log.log(FINE, () -> "Setting new external metrics with " + externalPackets.size() + " metrics packets.");
- externalPackets.forEach(packet -> {
- packet.addConsumers(consumers.getAllConsumers())
- .retainMetrics(metricsToRetain())
- .applyOutputNames(outputNamesById());
- });
+ externalPackets.forEach(packet -> packet.addConsumers(consumers.getAllConsumers())
+ .retainMetrics(metricsToRetain())
+ .applyOutputNames(outputNamesById()));
metrics = List.copyOf(externalPackets);
}
@@ -73,8 +70,8 @@ public class ExternalMetrics {
* Returns a mapping from metric id to a list of the metric's output names.
* Metrics that only have their id as output name are included in the output.
*/
- private Map<MetricId, List<String>> outputNamesById() {
- Map<MetricId, List<String>> outputNamesById = new LinkedHashMap<>();
+ private Map<MetricId, List<MetricId>> outputNamesById() {
+ Map<MetricId, List<MetricId>> outputNamesById = new LinkedHashMap<>();
for (ConfiguredMetric metric : consumers.getConsumersByMetric().keySet()) {
outputNamesById.computeIfAbsent(metric.id(), unused -> new ArrayList<>())
.add(metric.outputname());
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metric.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metric.java
index 63e147bf6b4..8030e03b0ff 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metric.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metric.java
@@ -3,6 +3,7 @@ package ai.vespa.metricsproxy.metric;
import ai.vespa.metricsproxy.metric.model.ConsumerId;
import ai.vespa.metricsproxy.metric.model.DimensionId;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import java.util.Collections;
import java.util.LinkedHashMap;
@@ -17,7 +18,7 @@ public class Metric {
private final long time;
private final Number value;
private final String description;
- private String name;
+ private MetricId name;
private Map<DimensionId, String> dimensions;
private Set<ConsumerId> consumers;
@@ -28,7 +29,7 @@ public class Metric {
* @param value The numeric value
* @param time The timestamp of this metric in seconds
*/
- public Metric(String name, Number value, long time, Map<DimensionId, String> dimensions, String description) {
+ public Metric(MetricId name, Number value, long time, Map<DimensionId, String> dimensions, String description) {
this.time = time;
this.value = value;
this.name = name;
@@ -36,11 +37,11 @@ public class Metric {
this.description = description;
}
- public Metric(String name, Number value, long timestamp) {
+ public Metric(MetricId name, Number value, long timestamp) {
this(name, value, timestamp, Collections.emptyMap(), "");
}
- public Metric(String name, Number value) {
+ public Metric(MetricId name, Number value) {
this(name, value, System.currentTimeMillis() / 1000);
}
@@ -72,14 +73,14 @@ public class Metric {
*
* @param name The name to use for this metric
*/
- public void setName(String name) {
+ public void setName(MetricId name) {
this.name = name;
}
/**
* @return The name of the metric
*/
- public String getName() {
+ public MetricId getName() {
return name;
}
@@ -94,7 +95,7 @@ public class Metric {
public String toString() {
return "Metric{" +
"time=" + time +
- ", name=" + name +
+ ", name=" + name.id +
", value='" + value + '\'' +
", dimensions=" + dimensions +
'}';
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metrics.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metrics.java
index b45e7743640..143b999cf1c 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metrics.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/Metrics.java
@@ -1,6 +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.metric.model.MetricId;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -65,7 +67,7 @@ public class Metrics {
* @param key metric name
* @return the metric, or null
*/
- public Metric getMetric(String key) {
+ public Metric getMetric(MetricId key) {
isFrozen = true;
for (Metric m: metrics) {
if (m.getName().equals(key)) {
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 795d1005b10..555a49228ef 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
@@ -28,9 +28,7 @@ public class ConsumerId {
@Override
public String toString() {
- return "ConsumerId{" +
- "id='" + id + '\'' +
- '}';
+ return id;
}
}
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 3804794804b..b99f720cb03 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
@@ -28,8 +28,6 @@ public final class DimensionId {
@Override
public String toString() {
- return "DimensionId{" +
- "id='" + id + '\'' +
- '}';
+ return id;
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java
index 9be67607d4d..dcee4100f98 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/MetricId.java
@@ -8,6 +8,7 @@ import java.util.Objects;
*/
public class MetricId {
+ public static final MetricId empty = toMetricId("");
public final String id;
private MetricId(String id) { this.id = id; }
@@ -28,9 +29,7 @@ public class MetricId {
@Override
public String toString() {
- return "MetricId{" +
- "id='" + id + '\'' +
- '}';
+ return 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 4e60838270a..dc289c6dac7 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
@@ -15,7 +15,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
-import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId;
import static java.util.Collections.unmodifiableList;
import static java.util.Collections.unmodifiableMap;
import static java.util.stream.Collectors.joining;
@@ -121,8 +120,7 @@ public class MetricsPacket {
public Builder putMetrics(Collection<Metric> extraMetrics) {
if (extraMetrics != null)
- extraMetrics.forEach(metric -> metrics.put(toMetricId(metric.getName()),
- metric.getValue().doubleValue()));
+ extraMetrics.forEach(metric -> metrics.put(metric.getName(), metric.getValue().doubleValue()));
return this;
}
@@ -136,11 +134,11 @@ public class MetricsPacket {
return this;
}
- public Builder applyOutputNames(Map<MetricId, List<String>> outputNamesById) {
+ public Builder applyOutputNames(Map<MetricId, List<MetricId>> outputNamesById) {
Map<MetricId, Number> newMetrics = new LinkedHashMap<>();
outputNamesById.forEach((id, outputNames) -> {
if (metrics.containsKey(id))
- outputNames.forEach(outputName -> newMetrics.put(toMetricId(outputName), metrics.get(id)));
+ outputNames.forEach(outputName -> newMetrics.put(outputName, metrics.get(id)));
});
metrics = newMetrics;
return this;
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ServiceId.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ServiceId.java
index 14f1a67bef3..bbc958fcda5 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ServiceId.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/ServiceId.java
@@ -28,9 +28,7 @@ public class ServiceId {
@Override
public String toString() {
- return "ServiceId{" +
- "id='" + id + '\'' +
- '}';
+ return id;
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java
index e249338c318..c04b6ea66ad 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java
@@ -18,7 +18,6 @@ import java.util.stream.Collectors;
import static ai.vespa.metricsproxy.metric.ExternalMetrics.VESPA_NODE_SERVICE_ID;
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 ai.vespa.metricsproxy.metric.model.json.JacksonUtil.createObjectMapper;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
@@ -139,7 +138,7 @@ public class GenericJsonUtil {
}
private static MetricsPacket.Builder newServicePacket(GenericService service) {
- return new MetricsPacket.Builder(toServiceId(service.name))
+ return new MetricsPacket.Builder(ServiceId.toServiceId(service.name))
.statusCode(StatusCode.fromString(service.status.code).ordinal())
.statusMessage(service.status.description)
.timestamp(service.timestamp);
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
index 38038fda66a..f5b7f67038a 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonModel.java
@@ -4,6 +4,7 @@ package ai.vespa.metricsproxy.metric.model.json;
import ai.vespa.metricsproxy.metric.Metric;
import ai.vespa.metricsproxy.metric.model.ConsumerId;
import ai.vespa.metricsproxy.metric.model.DimensionId;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -55,7 +56,7 @@ public class YamasJsonModel {
// NOTE: do not rename to 'setMetrics', as jackson will try to use it.
public void resetMetrics(List<Metric> newMetrics) {
metrics = new LinkedHashMap<>();
- newMetrics.forEach(metric -> metrics.put(metric.getName(), metric.getValue().doubleValue()));
+ newMetrics.forEach(metric -> metrics.put(metric.getName().id, metric.getValue().doubleValue()));
}
/**
@@ -106,7 +107,7 @@ public class YamasJsonModel {
if (metrics == null) return emptyList();
return metrics.keySet().stream()
- .map(name -> new Metric(name, metrics.get(name)))
+ .map(name -> new Metric(MetricId.toMetricId(name), metrics.get(name)))
.collect(Collectors.toList());
}
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 4413a9ebc2e..4dbe1a9a982 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
@@ -3,6 +3,7 @@ package ai.vespa.metricsproxy.metric.model.json;
import ai.vespa.metricsproxy.metric.model.ConsumerId;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
+import ai.vespa.metricsproxy.metric.model.ServiceId;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -17,7 +18,6 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
import static ai.vespa.metricsproxy.http.ValuesFetcher.defaultMetricsConsumerId;
-import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId;
import static com.yahoo.stream.CustomCollectors.toLinkedMap;
import static java.util.Collections.emptyList;
import static java.util.logging.Level.WARNING;
@@ -34,7 +34,7 @@ public class YamasJsonUtil {
if (jsonModel.application == null)
throw new IllegalArgumentException("Service id cannot be null");
- return new MetricsPacket.Builder(toServiceId(jsonModel.application))
+ return new MetricsPacket.Builder(ServiceId.toServiceId(jsonModel.application))
.statusCode(jsonModel.status_code)
.statusMessage(jsonModel.status_msg)
.timestamp(jsonModel.timestamp)
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
index 20c2325e1f3..48621b9abab 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java
@@ -4,6 +4,7 @@ package ai.vespa.metricsproxy.service;
import ai.vespa.metricsproxy.metric.Metric;
import ai.vespa.metricsproxy.metric.Metrics;
import ai.vespa.metricsproxy.metric.model.DimensionId;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.JsonNode;
@@ -30,9 +31,7 @@ public class MetricsParser {
static Metrics parse(String data) throws IOException {
return parse(jsonMapper.createParser(data));
}
- static Metrics parse(byte [] data) throws IOException {
- return parse(jsonMapper.createParser(data));
- }
+
static Metrics parse(InputStream data) throws IOException {
return parse(jsonMapper.createParser(data));
}
@@ -155,8 +154,8 @@ public class MetricsParser {
if (value == null) {
throw new IllegalArgumentException("Value for aggregator '" + aggregator + "' is not a number");
}
- StringBuilder metricName = (new StringBuilder()).append(name).append(".").append(aggregator);
- metrics.add(new Metric(metricName.toString(), value, timestamp, dim, description));
+ String metricName = new StringBuilder().append(name).append(".").append(aggregator).toString();
+ metrics.add(new Metric(MetricId.toMetricId(metricName), value, timestamp, dim, description));
}
}
}
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java
index 5d119fc30e6..fbccd3dc066 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/SystemPoller.java
@@ -3,6 +3,8 @@ package ai.vespa.metricsproxy.service;
import ai.vespa.metricsproxy.metric.Metric;
import ai.vespa.metricsproxy.metric.Metrics;
+import ai.vespa.metricsproxy.metric.model.MetricId;
+
import java.util.logging.Level;
import java.io.BufferedReader;
@@ -115,8 +117,8 @@ public class SystemPoller {
long[] size = getMemoryUsage(s);
log.log(Level.FINE, () -> "Updating memory metric for service " + s);
- metrics.add(new Metric("memory_virt", size[memoryTypeVirtual], startTime / 1000));
- metrics.add(new Metric("memory_rss", size[memoryTypeResident], startTime / 1000));
+ metrics.add(new Metric(MetricId.toMetricId("memory_virt"), size[memoryTypeVirtual], startTime / 1000));
+ metrics.add(new Metric(MetricId.toMetricId("memory_rss"), size[memoryTypeResident], startTime / 1000));
long procJiffies = getPidJiffies(s);
if (lastTotalCpuJiffies >= 0 && lastCpuJiffiesMetrics.containsKey(s)) {
@@ -124,7 +126,7 @@ public class SystemPoller {
long diff = procJiffies - last;
if (diff >= 0) {
- metrics.add(new Metric("cpu", 100 * ((double) diff) / (sysJiffies - lastTotalCpuJiffies), startTime / 1000));
+ metrics.add(new Metric(MetricId.toMetricId("cpu"), 100 * ((double) diff) / (sysJiffies - lastTotalCpuJiffies), startTime / 1000));
}
}
lastCpuJiffiesMetrics.put(s, procJiffies);
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/core/MetricsManagerTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/core/MetricsManagerTest.java
index fd1961fc168..36a6aa01620 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/core/MetricsManagerTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/core/MetricsManagerTest.java
@@ -11,6 +11,7 @@ import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensionsConfig;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensions;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensionsConfig;
import ai.vespa.metricsproxy.metric.model.DimensionId;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
import ai.vespa.metricsproxy.metric.model.ServiceId;
import ai.vespa.metricsproxy.service.DownService;
@@ -54,7 +55,7 @@ public class MetricsManagerTest {
new DummyService(0, SERVICE_0_ID),
new DummyService(1, SERVICE_1_ID));
- private static final String WHITELISTED_METRIC_ID = "whitelisted";
+ private static final MetricId WHITELISTED_METRIC_ID = toMetricId("whitelisted");
@Before
public void setupMetricsManager() {
@@ -127,7 +128,7 @@ public class MetricsManagerTest {
VespaService service0 = testServices.get(0);
Metrics oldSystemMetrics = service0.getSystemMetrics();
- service0.getSystemMetrics().add(new Metric("cpu", 1));
+ service0.getSystemMetrics().add(new Metric(toMetricId("cpu"), 1));
List<MetricsPacket> packets = metricsManager.getMetrics(testServices, Instant.EPOCH);
assertEquals(3, packets.size());
@@ -154,7 +155,7 @@ public class MetricsManagerTest {
public void extra_metrics_packets_without_whitelisted_metrics_are_not_added() {
metricsManager.setExtraMetrics(ImmutableList.of(
new MetricsPacket.Builder(toServiceId("foo"))
- .putMetrics(ImmutableList.of(new Metric("not-whitelisted", 0)))));
+ .putMetrics(ImmutableList.of(new Metric(toMetricId("not-whitelisted"), 0)))));
List<MetricsPacket> packets = metricsManager.getMetrics(testServices, Instant.EPOCH);
assertThat(packets.size(), is(2));
@@ -243,8 +244,8 @@ public class MetricsManagerTest {
.consumer(new Consumer.Builder()
.name(vespaMetricsConsumerId.id)
.metric(new Consumer.Metric.Builder()
- .name(WHITELISTED_METRIC_ID)
- .outputname(WHITELISTED_METRIC_ID))
+ .name(WHITELISTED_METRIC_ID.id)
+ .outputname(WHITELISTED_METRIC_ID.id))
.metric(new Consumer.Metric.Builder()
.name(DummyService.METRIC_1)
.outputname(DummyService.METRIC_1)
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/HttpHandlerTestBase.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/HttpHandlerTestBase.java
index ab586334baa..4bfb80e0f07 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/HttpHandlerTestBase.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/HttpHandlerTestBase.java
@@ -11,6 +11,7 @@ import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensions;
import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensionsConfig;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensions;
import ai.vespa.metricsproxy.metric.dimensions.NodeDimensionsConfig;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import ai.vespa.metricsproxy.metric.model.MetricsPacket;
import ai.vespa.metricsproxy.service.DownService;
import ai.vespa.metricsproxy.service.DummyService;
@@ -57,7 +58,7 @@ public class HttpHandlerTestBase {
metricsManager.setExtraMetrics(ImmutableList.of(
new MetricsPacket.Builder(VESPA_NODE_SERVICE_ID)
.timestamp(Instant.now().getEpochSecond())
- .putMetrics(ImmutableList.of(new Metric(CPU_METRIC, 12.345)))));
+ .putMetrics(ImmutableList.of(new Metric(MetricId.toMetricId(CPU_METRIC), 12.345)))));
return metricsManager;
}
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/MetricsTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/MetricsTest.java
index 84f40592f46..57446395afe 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/MetricsTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/MetricsTest.java
@@ -8,6 +8,7 @@ import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
+import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -21,16 +22,16 @@ public class MetricsTest {
public void testIterator() {
Metrics m = new Metrics();
long now = System.currentTimeMillis() / 1000;
- m.add(new Metric("a", 1, now));
- m.add(new Metric("b", 2.5, now));
+ m.add(new Metric(toMetricId("a"), 1, now));
+ m.add(new Metric(toMetricId("b"), 2.5, now));
//should expire after 0 seconds
- m.add(new Metric("c", 2, now));
+ m.add(new Metric(toMetricId("c"), 2, now));
Map<String, Number> map = new HashMap<>();
for (Metric metric: m.getMetrics()) {
- String k = metric.getName();
+ String k = metric.getName().id;
assertThat(map.containsKey(k), is(false));
map.put(k, metric.getValue());
@@ -43,9 +44,9 @@ public class MetricsTest {
@Test
public void testBasicMetric() {
Metrics m = new Metrics();
- m.add(new Metric("count", 1, System.currentTimeMillis() / 1000));
+ m.add(new Metric(toMetricId("count"), 1, System.currentTimeMillis() / 1000));
assertThat(m.getMetrics().size(), is(1));
- assertThat(m.getMetrics().get(0).getName(), is("count"));
+ assertThat(m.getMetrics().get(0).getName(), is(toMetricId("count")));
}
@Test
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/MetricsPacketTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/MetricsPacketTest.java
index 78c80689299..7c16fe9f8f6 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/MetricsPacketTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/MetricsPacketTest.java
@@ -7,7 +7,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import org.junit.Test;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -66,8 +65,8 @@ public class MetricsPacketTest {
public void builder_can_retain_subset_of_metrics() {
MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo"))
.putMetrics(ImmutableList.of(
- new Metric("remove", 1),
- new Metric("keep", 2)))
+ new Metric(toMetricId("remove"), 1),
+ new Metric(toMetricId("keep"), 2)))
.retainMetrics(ImmutableSet.of(toMetricId("keep"), toMetricId("non-existent")))
.build();
@@ -87,17 +86,17 @@ public class MetricsPacketTest {
MetricId THREE_ID = toMetricId(THREE);
MetricId NON_EXISTENT_ID = toMetricId(NON_EXISTENT);
- Map<MetricId, List<String>> outputNamesById = ImmutableMap.of(
- toMetricId(ONE), ImmutableList.of(ONE),
- toMetricId(TWO), ImmutableList.of(TWO, "dos"),
- toMetricId(THREE), ImmutableList.of("3"),
- toMetricId(NON_EXISTENT), ImmutableList.of(NON_EXISTENT));
+ Map<MetricId, List<MetricId>> outputNamesById = ImmutableMap.of(
+ ONE_ID, ImmutableList.of(ONE_ID),
+ TWO_ID, ImmutableList.of(TWO_ID, toMetricId("dos")),
+ THREE_ID, ImmutableList.of(toMetricId("3")),
+ NON_EXISTENT_ID, ImmutableList.of(NON_EXISTENT_ID));
MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo"))
.putMetrics(ImmutableList.of(
- new Metric(ONE, 1),
- new Metric(TWO, 2),
- new Metric(THREE, 3)))
+ new Metric(ONE_ID, 1),
+ new Metric(TWO_ID, 2),
+ new Metric(THREE_ID, 3)))
.applyOutputNames(outputNamesById)
.build();
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 f4acb8c312f..f13e63edc81 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
@@ -19,6 +19,7 @@ import org.junit.Test;
import java.io.IOException;
import java.util.List;
+import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId;
import static ai.vespa.metricsproxy.TestUtil.getFileContents;
import static ai.vespa.metricsproxy.core.VespaMetrics.vespaMetricsConsumerId;
import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId;
@@ -107,9 +108,9 @@ public class RpcMetricsTest {
Metrics metrics = qrserver.getMetrics();
assertThat("Fetched number of metrics is not correct", metrics.size(), is(2));
- Metric m = metrics.getMetric("foo.count");
+ Metric m = metrics.getMetric(toMetricId("foo.count"));
assertNotNull("Did not find expected metric with name 'foo.count'", m);
- Metric m2 = metrics.getMetric("bar.count");
+ Metric m2 = metrics.getMetric(toMetricId("bar.count"));
assertNotNull("Did not find expected metric with name 'bar.count'", m2);
try (RpcClient rpcClient = new RpcClient(tester.rpcPort())) {
@@ -160,7 +161,7 @@ public class RpcMetricsTest {
private void verfiyMetricsFromServiceObject(VespaService service) {
Metrics storageMetrics = service.getMetrics();
assertThat(storageMetrics.size(), is(2));
- Metric foo = storageMetrics.getMetric("foo.count");
+ Metric foo = storageMetrics.getMetric(toMetricId("foo.count"));
assertNotNull("Did not find expected metric with name 'foo.count'", foo);
assertThat("Expected 2 dimensions for metric foo", foo.getDimensions().size(), is(2));
assertThat("Metric foo did not contain correct dimension mapping for key = foo.count", foo.getDimensions().containsKey(toDimensionId("foo")), is(true));
@@ -186,10 +187,10 @@ public class RpcMetricsTest {
assertThat(services.size(), is(1));
Metrics metrics = services.get(0).getMetrics();
assertThat("Fetched number of metrics is not correct", metrics.size(), is(2));
- Metric m = metrics.getMetric("foo.count");
+ Metric m = metrics.getMetric(toMetricId("foo.count"));
assertNotNull("Did not find expected metric with name 'foo.count'", m);
- Metric m2 = metrics.getMetric("bar.count");
+ Metric m2 = metrics.getMetric(toMetricId("bar.count"));
assertNotNull("Did not find expected metric with name 'bar'", m2);
try (RpcClient rpcClient = new RpcClient(tester.rpcPort())) {
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ContainerServiceTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ContainerServiceTest.java
index 7ff179e5528..1fbdaadab25 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ContainerServiceTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ContainerServiceTest.java
@@ -9,6 +9,7 @@ import org.junit.Test;
import static ai.vespa.metricsproxy.TestUtil.getFileContents;
import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId;
+import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId;
import static ai.vespa.metricsproxy.service.RemoteMetricsFetcher.METRICS_PATH;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -40,7 +41,7 @@ public class ContainerServiceTest {
int count = 0;
VespaService service = VespaService.create("service1", "id", httpServer.port());
for (Metric m : service.getMetrics().getMetrics()) {
- if (m.getName().equals("queries.rate")) {
+ if (m.getName().equals(toMetricId("queries.rate"))) {
count++;
System.out.println("Name: " + m.getName() + " value: " + m.getValue());
if (m.getDimensions().get(toDimensionId("chain")).equals("asvBlendingResult")) {
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java
index 7b36e1d4b8b..ccbb237ae37 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/DummyService.java
@@ -3,6 +3,7 @@ package ai.vespa.metricsproxy.service;
import ai.vespa.metricsproxy.metric.Metric;
import ai.vespa.metricsproxy.metric.Metrics;
+import ai.vespa.metricsproxy.metric.model.MetricId;
/**
* @author Unknown
@@ -24,8 +25,8 @@ public class DummyService extends VespaService {
Metrics m = new Metrics();
long timestamp = System.currentTimeMillis() / 1000;
- m.add(new Metric(METRIC_1, 5 * num + 1, timestamp));
- m.add(new Metric(METRIC_2, 1.3 * num + 1.05, timestamp));
+ m.add(new Metric(MetricId.toMetricId(METRIC_1), 5 * num + 1, timestamp));
+ m.add(new Metric(MetricId.toMetricId(METRIC_2), 1.3 * num + 1.05, timestamp));
return m;
}
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
index 57185d55131..defcf4bfaaa 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
@@ -3,6 +3,7 @@ package ai.vespa.metricsproxy.service;
import ai.vespa.metricsproxy.TestUtil;
import ai.vespa.metricsproxy.metric.Metrics;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
@@ -20,8 +21,8 @@ public class MetricsFetcherTest {
RemoteMetricsFetcher fetcher = new RemoteMetricsFetcher(new DummyService(0, "dummy/id/0"), port);
Metrics metrics = fetcher.createMetrics(jsonData, 0);
assertThat(metrics.size(), is(10));
- assertThat(metrics.getMetric("query_hits.count").getValue().intValue(), is(28));
- assertThat(metrics.getMetric("queries.rate").getValue().doubleValue(), is(0.4667));
+ assertThat(metrics.getMetric(MetricId.toMetricId("query_hits.count")).getValue().intValue(), is(28));
+ assertThat(metrics.getMetric(MetricId.toMetricId("queries.rate")).getValue().doubleValue(), is(0.4667));
assertThat(metrics.getTimeStamp(), is(1334134700L));
}
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java
index 9400d74fa3a..87b55b3b00b 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java
@@ -2,6 +2,7 @@
package ai.vespa.metricsproxy.service;
import ai.vespa.metricsproxy.metric.Metrics;
+import ai.vespa.metricsproxy.metric.model.MetricId;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -53,7 +54,7 @@ public class VespaServiceTest {
public void testMetricsFetching() {
VespaService service = VespaService.create("service1", "id", httpServer.port());
Metrics metrics = service.getMetrics();
- assertThat(metrics.getMetric("queries.count").getValue().intValue(), is(28));
+ assertThat(metrics.getMetric(MetricId.toMetricId("queries.count")).getValue().intValue(), is(28));
// Shutdown server and check that no metrics are returned (should use empty metrics
// when unable to fetch new metrics)