diff options
author | Arne H Juul <arnej@yahoo-inc.com> | 2016-11-08 12:20:52 +0100 |
---|---|---|
committer | Arne H Juul <arnej@yahoo-inc.com> | 2016-11-08 12:20:56 +0100 |
commit | 9a4730df08cb738c4534e784201518ebb8238e18 (patch) | |
tree | f6c9f4122f371fb4eed674ac42459b7c68d104f5 /simplemetrics/src/main/java/com/yahoo/metrics | |
parent | fa865f55ba4639b36559a263c73d259dfb1ab9c3 (diff) |
add logging of key clashes
Diffstat (limited to 'simplemetrics/src/main/java/com/yahoo/metrics')
-rw-r--r-- | simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java | 16 |
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<>()); |