summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-02-26 13:37:57 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-02-26 13:37:57 +0100
commit7cb8faed0b2198148567a70e2b050562b9ea4a5c (patch)
tree2544f718370b2a4e83262cab9745c09972596902 /node-repository
parentec86e9c675420281cbd9b0b0d950540ef1e82ebe (diff)
More readable code
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDb.java20
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java4
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());
}