summaryrefslogtreecommitdiffstats
path: root/simplemetrics
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-08-24 16:05:47 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-08-24 16:05:47 +0200
commit6927d36e1c64472df74e741f22f1ccaf150076fa (patch)
tree1e7accc0834a5fe8f870f81547be9ee413a08d57 /simplemetrics
parent263b227a3f329e7e189ca7ae2dd9fdf0dd1b866a (diff)
Nonfunctional changes only
Diffstat (limited to 'simplemetrics')
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/Bucket.java31
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/DimensionCache.java3
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/Identifier.java17
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricAggregator.java3
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricManager.java1
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/Point.java1
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/UnitTestSetup.java1
-rw-r--r--simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SnapshotConverter.java17
-rw-r--r--simplemetrics/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java3
-rw-r--r--simplemetrics/src/test/java/com/yahoo/metrics/simple/PointTest.java23
-rw-r--r--simplemetrics/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java25
11 files changed, 87 insertions, 38 deletions
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Bucket.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Bucket.java
index 78e217e9658..4ae284c4304 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Bucket.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Bucket.java
@@ -24,6 +24,10 @@ import edu.umd.cs.findbugs.annotations.NonNull;
* @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
*/
public class Bucket {
+
+ private static final Logger log = Logger.getLogger(Bucket.class.getName());
+ private final Map<Identifier, UntypedMetric> values = LazyMap.newHashMap();
+
boolean gotTimeStamps;
long fromMillis;
long toMillis;
@@ -40,9 +44,6 @@ public class Bucket {
this.toMillis = toMillis;
}
- private static final Logger log = Logger.getLogger(Bucket.class.getName());
- private final Map<Identifier, UntypedMetric> values = LazyMap.newHashMap();
-
public Set<Map.Entry<Identifier, UntypedMetric>> entrySet() {
return values.entrySet();
}
@@ -51,14 +52,14 @@ public class Bucket {
UntypedMetric value = get(x);
Measurement m = x.getMeasurement();
switch (x.getMetricType()) {
- case GAUGE:
- value.put(m.getMagnitude());
- break;
- case COUNTER:
- value.add(m.getMagnitude());
- break;
- default:
- throw new IllegalArgumentException("Unsupported metric type: " + x.getMetricType());
+ case GAUGE:
+ value.put(m.getMagnitude());
+ break;
+ case COUNTER:
+ value.add(m.getMagnitude());
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported metric type: " + x.getMetricType());
}
}
@@ -71,7 +72,7 @@ public class Bucket {
}
void merge(Bucket other, boolean otherIsNewer) {
- final LazySet<String> malformedMetrics = LazySet.newHashSet();
+ LazySet<String> malformedMetrics = LazySet.newHashSet();
for (Map.Entry<Identifier, UntypedMetric> entry : other.values.entrySet()) {
String metricName = entry.getKey().getName();
try {
@@ -166,10 +167,7 @@ public class Bucket {
@Override
public String toString() {
- final int maxLen = 3;
- StringBuilder builder = new StringBuilder();
- builder.append("Bucket [values=").append(values != null ? toString(values.entrySet(), maxLen) : null).append("]");
- return builder.toString();
+ return "Bucket [values=" + (values != null ? toString(values.entrySet(), 3) : null) + "]";
}
private String toString(Collection<?> collection, int maxLen) {
@@ -199,4 +197,5 @@ public class Bucket {
public long getToMillis() {
return toMillis;
}
+
}
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/DimensionCache.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/DimensionCache.java
index c3537947d66..83d6d6142e0 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/DimensionCache.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/DimensionCache.java
@@ -10,12 +10,13 @@ import java.util.Map.Entry;
import java.util.Set;
/**
- * Basically the persistence layer for metrics. Both CPU and memory hungry, but
+ * The persistence layer for metrics. Both CPU and memory hungry, but
* it runs in its own little world.
*
* @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
*/
class DimensionCache {
+
private final Map<String, LinkedHashMap<Point, UntypedMetric>> persistentData = new HashMap<>();
private final int pointsToKeep;
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Identifier.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Identifier.java
index 40c9c3e5d45..8d2ac23689b 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Identifier.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Identifier.java
@@ -6,9 +6,10 @@ package com.yahoo.metrics.simple;
* Point and a metric name. Written to be robust against null input as the API
* gives very little guidance.
*
- * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
*/
public class Identifier {
+
private final String name;
private final Point location;
@@ -28,15 +29,10 @@ public class Identifier {
@Override
public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
+ if (this == obj) return true;
+ if (obj == null) return false;
+ if (getClass() != obj.getClass()) return false;
+
Identifier other = (Identifier) obj;
if (location == null) {
if (other.location != null) {
@@ -69,4 +65,5 @@ public class Identifier {
public Point getLocation() {
return location;
}
+
}
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricAggregator.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricAggregator.java
index a388b1a1cc4..d5903eb5eef 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricAggregator.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricAggregator.java
@@ -10,11 +10,12 @@ import com.yahoo.metrics.ManagerConfig;
/**
* Worker thread to collect the data stored in worker threads and build
* snapshots for external consumption. Using the correct executor gives the
- * necessary guarantuess for this being invoked from only a single thread.
+ * necessary guarantuees for this being invoked from only a single thread.
*
* @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
*/
class MetricAggregator implements Runnable {
+
private final ThreadLocalDirectory<Bucket, Sample> metricsCollection;
private final AtomicReference<Bucket> currentSnapshot;
private int generation = 0;
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricManager.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricManager.java
index aef7067dc65..55fe257715d 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricManager.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/MetricManager.java
@@ -20,6 +20,7 @@ import com.yahoo.log.LogLevel;
* @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
*/
public class MetricManager extends AbstractComponent implements Provider<MetricReceiver> {
+
private static Logger log = Logger.getLogger(MetricManager.class.getName());
private final ScheduledThreadPoolExecutor executor;
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Point.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Point.java
index 61415f042bc..ef2ea24775c 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/Point.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/Point.java
@@ -17,6 +17,7 @@ import com.yahoo.jdisc.Metric.Context;
*/
@Beta
public final class Point implements Context {
+
private final Value[] location;
private final String[] dimensions;
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/UnitTestSetup.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/UnitTestSetup.java
index 8ce3775d5e9..da9e981bf4a 100644
--- a/simplemetrics/src/main/java/com/yahoo/metrics/simple/UnitTestSetup.java
+++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/UnitTestSetup.java
@@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit;
* @author ean
*/
public class UnitTestSetup {
+
MetricManager metricManager;
MetricReceiver receiver;
ObservableUpdater updater;
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 45bdd142a60..83b84abaded 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
@@ -27,13 +27,6 @@ class SnapshotConverter {
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' };
- private Map<String, MetricValue> getMap(Point point) {
- if (! perPointData.containsKey(point)) {
- perPointData.put(point, new HashMap<>());
- }
- return perPointData.get(point);
- }
-
public SnapshotConverter(Bucket snapshot) {
this.snapshot = snapshot;
}
@@ -65,7 +58,6 @@ class SnapshotConverter {
}
}
-
static MetricValue convert(UntypedMetric val) {
if (val.isCounter()) {
return CountMetric.newInstance(val.getCount());
@@ -80,7 +72,7 @@ class SnapshotConverter {
}
private static List<Tuple2<String, Double>> buildPercentileList(DoubleHistogram histogram) {
- final List<Tuple2<String, Double>> prefixAndValues = new ArrayList<>(2);
+ List<Tuple2<String, Double>> prefixAndValues = new ArrayList<>(2);
prefixAndValues.add(new Tuple2<>("95", histogram.getValueAtPercentile(95.0d)));
prefixAndValues.add(new Tuple2<>("99", histogram.getValueAtPercentile(99.0d)));
return prefixAndValues;
@@ -101,6 +93,13 @@ class SnapshotConverter {
data);
}
+ private Map<String, MetricValue> getMap(Point point) {
+ if (! perPointData.containsKey(point)) {
+ perPointData.put(point, new HashMap<>());
+ }
+ return perPointData.get(point);
+ }
+
void outputHistograms(PrintStream output) {
boolean gotHistogram = false;
for (Map.Entry<Identifier, UntypedMetric> entry : snapshot.entrySet()) {
diff --git a/simplemetrics/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java b/simplemetrics/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java
index 8c24baae560..c73493f7570 100644
--- a/simplemetrics/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java
+++ b/simplemetrics/src/test/java/com/yahoo/metrics/simple/DimensionsCacheTest.java
@@ -20,6 +20,7 @@ import com.yahoo.metrics.simple.UntypedMetric.AssumedType;
* @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
*/
public class DimensionsCacheTest {
+
private static final int POINTS_TO_KEEP = 3;
DimensionCache cache;
@@ -52,7 +53,7 @@ public class DimensionsCacheTest {
newestFound = true;
}
}
- assertTrue("Did not keep newest measurement when padding points.", newestFound);
+ assertTrue("Kept newest measurement when padding points.", newestFound);
}
@Test
diff --git a/simplemetrics/src/test/java/com/yahoo/metrics/simple/PointTest.java b/simplemetrics/src/test/java/com/yahoo/metrics/simple/PointTest.java
new file mode 100644
index 00000000000..82f6c097dd8
--- /dev/null
+++ b/simplemetrics/src/test/java/com/yahoo/metrics/simple/PointTest.java
@@ -0,0 +1,23 @@
+package com.yahoo.metrics.simple;
+
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.HashMap;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bratseth
+ */
+public class PointTest {
+
+ @Test
+ public void testPointEquality() {
+ Point a = new Point(Collections.emptyMap());
+ Point b = new Point(new HashMap<>(0));
+ assertEquals(a.hashCode(), b.hashCode());
+ assertEquals(a, b);
+ }
+
+}
diff --git a/simplemetrics/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java b/simplemetrics/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java
new file mode 100644
index 00000000000..c5be6830fcb
--- /dev/null
+++ b/simplemetrics/src/test/java/com/yahoo/metrics/simple/jdisc/SnapshotConverterTest.java
@@ -0,0 +1,25 @@
+package com.yahoo.metrics.simple.jdisc;
+
+import com.yahoo.container.jdisc.state.MetricDimensions;
+import com.yahoo.metrics.simple.Point;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.HashMap;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bratseth
+ */
+public class SnapshotConverterTest {
+
+ @Test
+ public void testConversion() {
+ MetricDimensions a = SnapshotConverter.convert(new Point(Collections.emptyMap()));
+ MetricDimensions b = SnapshotConverter.convert(new Point(new HashMap<>(0)));
+ assertEquals(a.hashCode(), b.hashCode());
+ assertEquals(a, b);
+ }
+
+}