diff options
author | valerijf <valerijf@yahoo-inc.com> | 2017-05-15 14:50:08 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2017-05-15 14:50:08 +0200 |
commit | 2ab517d3c177915c3b02287918982de4716ce73d (patch) | |
tree | 8190a7513e8f99d29bfaf446d64986bd003c9dd3 /node-admin | |
parent | c6b3d03e90f493950f40d9820115b3e83e13d908 (diff) |
Simplify StorageMaintainer
Diffstat (limited to 'node-admin')
2 files changed, 11 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java index 99a07bcda60..972cf9d56f7 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainer.java @@ -64,7 +64,7 @@ public class StorageMaintainer { numberOfNodeAdminMaintenanceFails = metricReceiver.declareCounter(MetricReceiverWrapper.APPLICATION_DOCKER, dimensions, "nodes.maintenance.fails"); } - public Map<String, Number> updateIfNeededAndGetDiskMetricsFor(ContainerName containerName) { + public Optional<Long> updateIfNeededAndGetDiskMetricsFor(ContainerName containerName) { // Calculating disk usage is IO expensive operation and its value changes relatively slowly, we want to perform // that calculation rarely. Additionally, we spread out the calculation for different containers by adding // a random deviation. @@ -79,7 +79,7 @@ public class StorageMaintainer { Path containerDir = environment.pathInNodeAdminFromPathInNode(containerName, "/home/"); try { long used = getDiscUsedInBytes(containerDir); - metricsCache.metrics.put("node.disk.used", used); + metricsCache.setDiskUsage(used); } catch (Throwable e) { logger.error("Problems during disk usage calculations: " + e.getMessage()); } @@ -88,7 +88,7 @@ public class StorageMaintainer { metricsCacheByContainerName.put(containerName, metricsCache); } - return metricsCacheByContainerName.get(containerName).metrics; + return metricsCacheByContainerName.get(containerName).diskUsage; } // Public for testing @@ -305,10 +305,14 @@ public class StorageMaintainer { private static class MetricsCache { private final Instant nextUpdateAt; - private final Map<String, Number> metrics = new HashMap<>(); + private Optional<Long> diskUsage = Optional.empty(); MetricsCache(Instant nextUpdateAt) { this.nextUpdateAt = nextUpdateAt; } + + void setDiskUsage(long diskUsage) { + this.diskUsage = Optional.of(diskUsage); + } } }
\ No newline at end of file diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java index c67b6a0e7e5..7f862180b44 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/StorageMaintainerMock.java @@ -9,8 +9,7 @@ import com.yahoo.vespa.hosted.node.admin.ContainerNodeSpec; import com.yahoo.vespa.hosted.node.admin.maintenance.StorageMaintainer; import com.yahoo.vespa.hosted.node.admin.util.Environment; -import java.util.HashMap; -import java.util.Map; +import java.util.Optional; /** * @author freva @@ -24,8 +23,8 @@ public class StorageMaintainerMock extends StorageMaintainer { } @Override - public Map<String, Number> updateIfNeededAndGetDiskMetricsFor(ContainerName containerName) { - return new HashMap<>(); + public Optional<Long> updateIfNeededAndGetDiskMetricsFor(ContainerName containerName) { + return Optional.empty(); } @Override |