summaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-16 18:30:04 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-12-16 18:30:04 +0100
commit1a042c3c8c74c9a445bba5cd0366b55ce480f9b0 (patch)
tree52e7ea7feac9f4e107330034062d489d4418b29e /metrics-proxy
parent64f178a21c1db6a75bf3b5a738e54d06314a97d7 (diff)
Use hashing that will actually differentiate properly
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/MetricsParser.java10
1 files changed, 5 insertions, 5 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 eb01e969b53..cdb87e76148 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
@@ -7,9 +7,11 @@ import ai.vespa.metricsproxy.metric.model.MetricId;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yahoo.compress.Hasher;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
@@ -164,14 +166,12 @@ public class MetricsParser {
}
static long dimensionsHashCode(List<Dimension> dimensions) {
- int keyHash = 0;
- int valueHash = 0;
+ long hash = 0;
for (Dimension dim : dimensions) {
- keyHash += dim.id.hashCode();
- valueHash += dim.value.hashCode();
+ hash += Hasher.xxh3(dim.id.getBytes(StandardCharsets.UTF_8)) ^ Hasher.xxh3(dim.value.getBytes(StandardCharsets.UTF_8));
}
- return (((long) keyHash) << 32) | (valueHash & 0xffffffffL);
+ return hash;
}
record Dimension(String id, String value) {