diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-02-26 13:37:57 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-02-26 13:37:57 +0100 |
commit | 7cb8faed0b2198148567a70e2b050562b9ea4a5c (patch) | |
tree | 2544f718370b2a4e83262cab9745c09972596902 /node-repository | |
parent | ec86e9c675420281cbd9b0b0d950540ef1e82ebe (diff) |
More readable code
Diffstat (limited to 'node-repository')
2 files changed, 7 insertions, 17 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDb.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDb.java index 018644d00a9..14a35e3efbc 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDb.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDb.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * An in-memory time-series "database" of node metrics. @@ -79,14 +80,10 @@ public class NodeMetricsDb { public int measurementCount() { synchronized (lock) { - int count = 0; - for (MeasurementKey key : keys) { - List<Measurement> measurements = db.get(key); - if (measurements == null) continue; - int measurementsInWindow = measurements.size() - largestIndexOutsideWindow(measurements) + 1; - count += measurementsInWindow; - } - return count; + return (int) keys.stream() + .flatMap(key -> db.getOrDefault(key, List.of()).stream()) + .filter(measurement -> measurement.timestamp >= startTime) + .count(); } } @@ -125,13 +122,6 @@ public class NodeMetricsDb { } } - private int largestIndexOutsideWindow(List<Measurement> measurements) { - int index = measurements.size() - 1; - while (index >= 0 && measurements.get(index).timestamp >= startTime) - index--; - return index; - } - } private static class MeasurementKey { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java index b2939b77786..519235857f1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java @@ -23,10 +23,10 @@ public class NodeMetricsDbTest { } db.add(values); - assertEquals(32, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.cpu, List.of("host0")).measurementCount()); + assertEquals(30, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.cpu, List.of("host0")).measurementCount()); assertEquals( 0, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.memory, List.of("host0")).measurementCount()); db.gc(clock); - assertEquals(26, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.cpu, List.of("host0")).measurementCount()); + assertEquals(24, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.cpu, List.of("host0")).measurementCount()); assertEquals( 0, db.getWindow(clock.instant().minus(Duration.ofHours(30)), Resource.memory, List.of("host0")).measurementCount()); } |