aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-01-06 12:56:10 +0000
committerArne Juul <arnej@yahooinc.com>2023-01-06 12:56:10 +0000
commit1447b725350ee4f25723135adefc50808867bf17 (patch)
tree762f6d1c6a0bcdf71050e660a2de2d03ea0b1576 /metrics-proxy
parent1d56a146b70899cd50d5e35c8f76876340c31ad2 (diff)
let prefixing with name happen after parsing entire object
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java11
1 files changed, 7 insertions, 4 deletions
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 e8f6459a1bc..a023528a28d 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
@@ -130,15 +130,18 @@ public class MetricsParser {
} else if (fieldName.equals("dimensions")) {
dim = parseDimensions(parser, uniqueDimensions);
} else if (fieldName.equals("values")) {
- values = parseValues(name+".", parser);
+ values = parseValues(parser);
} else {
if (token == JsonToken.START_OBJECT || token == JsonToken.START_ARRAY) {
parser.skipChildren();
}
}
}
+ if (name.equals("")) {
+ throw new IOException("missing name for entry in 'values' array");
+ }
for (Map.Entry<String, Number> value : values) {
- consumer.accept(new Metric(MetricId.toMetricId(value.getKey()), value.getValue(), timestamp, dim, description));
+ consumer.accept(new Metric(MetricId.toMetricId(name+"."+value.getKey()), value.getValue(), timestamp, dim, description));
}
}
@@ -171,12 +174,12 @@ public class MetricsParser {
}
}
- private static List<Map.Entry<String, Number>> parseValues(String prefix, JsonParser parser) throws IOException {
+ private static List<Map.Entry<String, Number>> parseValues(JsonParser parser) throws IOException {
List<Map.Entry<String, Number>> metrics = new ArrayList<>();
for (parser.nextToken(); parser.getCurrentToken() != JsonToken.END_OBJECT; parser.nextToken()) {
String fieldName = parser.getCurrentName();
JsonToken token = parser.nextToken();
- String metricName = prefix + fieldName;
+ String metricName = fieldName;
if (token == JsonToken.VALUE_NUMBER_INT) {
metrics.add(Map.entry(metricName, parser.getLongValue()));
} else if (token == JsonToken.VALUE_NUMBER_FLOAT) {