summaryrefslogtreecommitdiffstats
path: root/simplemetrics
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2016-11-08 12:20:52 +0100
committerArne H Juul <arnej@yahoo-inc.com>2016-11-08 12:20:56 +0100
commit9a4730df08cb738c4534e784201518ebb8238e18 (patch)
treef6c9f4122f371fb4eed674ac42459b7c68d104f5 /simplemetrics
parentfa865f55ba4639b36559a263c73d259dfb1ab9c3 (diff)
add logging of key clashes
Diffstat (limited to 'simplemetrics')
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
index bb0989ae127..466b86e790b 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java
@@ -4,6 +4,7 @@ package com.yahoo.metrics.simple.jdisc;
import java.io.PrintStream;
import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
import org.HdrHistogram.DoubleHistogram;
@@ -23,6 +24,8 @@ import com.yahoo.text.JSON;
*/
class SnapshotConverter {
+ private static Logger log = Logger.getLogger(SnapshotConverter.class.getName());
+
final Bucket snapshot;
final Map<Point, Map<String, MetricValue>> perPointData = new HashMap<>();
private static final char[] DIGITS = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
@@ -85,7 +88,16 @@ class SnapshotConverter {
}
Map<MetricDimensions, MetricSet> data = new HashMap<>();
for (Map.Entry<Point, Map<String, MetricValue>> entry : perPointData.entrySet()) {
- data.put(convert(entry.getKey()), new MetricSet(entry.getValue()));
+ MetricDimensions key = convert(entry.getKey());
+ MetricSet newval = new MetricSet(entry.getValue());
+ MetricSet old = data.get(key);
+ if (old != null) {
+ // should not happen, this is bad
+ // TODO: consider merging the two MetricSet instances
+ log.warning("losing MetricSet when converting for: "+entry.getKey());
+ } else {
+ data.put(key, newval);
+ }
}
return new MetricSnapshot(snapshot.getFromMillis(),
snapshot.getToMillis(),
@@ -95,7 +107,7 @@ class SnapshotConverter {
private Map<String, MetricValue> getMap(Point point) {
if (point == null) {
- point = new Point(new HashMap<>());
+ point = Point.emptyPoint();
}
if (! perPointData.containsKey(point)) {
perPointData.put(point, new HashMap<>());