From cc7e67d52ae39d3e6cf929d79ccbc0f91b3eadb7 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Sat, 15 Jun 2019 15:04:23 +0200 Subject: Remove docker.nodes.image.loading metric --- .../hosted/node/admin/nodeadmin/NodeAdminImpl.java | 6 ------ .../hosted/node/admin/nodeagent/NodeAgent.java | 5 ----- .../hosted/node/admin/nodeagent/NodeAgentImpl.java | 22 +++++----------------- 3 files changed, 5 insertions(+), 28 deletions(-) (limited to 'node-admin/src') diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java index 0d520241ac8..de3e6a7c64f 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java @@ -39,10 +39,8 @@ public class NodeAdminImpl implements NodeAdmin { private boolean previousWantFrozen; private boolean isFrozen; private Instant startOfFreezeConvergence; - private final Map nodeAgentWithSchedulerByHostname = new ConcurrentHashMap<>(); - private final GaugeWrapper numberOfContainersInLoadImageState; private final GaugeWrapper jvmHeapUsed; private final GaugeWrapper jvmHeapFree; private final GaugeWrapper jvmHeapTotal; @@ -108,14 +106,11 @@ public class NodeAdminImpl implements NodeAdmin { public void updateNodeAgentMetrics() { int numberContainersWaitingImage = 0; int numberOfNewUnhandledExceptions = 0; - for (NodeAgentWithScheduler nodeAgentWithScheduler : nodeAgentWithSchedulerByHostname.values()) { - if (nodeAgentWithScheduler.isDownloadingImage()) numberContainersWaitingImage++; numberOfNewUnhandledExceptions += nodeAgentWithScheduler.getAndResetNumberOfUnhandledExceptions(); nodeAgentWithScheduler.updateContainerNodeMetrics(); } - numberOfContainersInLoadImageState.sample(numberContainersWaitingImage); numberOfUnhandledExceptionsInNodeAgent.add(numberOfNewUnhandledExceptions); } @@ -208,7 +203,6 @@ public class NodeAdminImpl implements NodeAdmin { @Override public void stopForHostSuspension() { nodeAgent.stopForHostSuspension(); } @Override public void stopForRemoval() { nodeAgent.stopForRemoval(); } @Override public void updateContainerNodeMetrics() { nodeAgent.updateContainerNodeMetrics(); } - @Override public boolean isDownloadingImage() { return nodeAgent.isDownloadingImage(); } @Override public int getAndResetNumberOfUnhandledExceptions() { return nodeAgent.getAndResetNumberOfUnhandledExceptions(); } @Override public void scheduleTickWith(NodeAgentContext context, Instant at) { nodeAgentScheduler.scheduleTickWith(context, at); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java index d62cb8e45d9..de5ee1b69a4 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java @@ -32,11 +32,6 @@ public interface NodeAgent { */ void updateContainerNodeMetrics(); - /** - * Returns true if NodeAgent is waiting for an image download to finish - */ - boolean isDownloadingImage(); - /** * Returns and resets number of unhandled exceptions */ diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index cfdcefec1e3..408cffe2405 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -73,8 +73,6 @@ public class NodeAgentImpl implements NodeAgent { private final DoubleFlag containerCpuCap; private int numberOfUnhandledException = 0; - private DockerImage imageBeingDownloaded = null; - private long currentRebootGeneration = 0; private Optional currentRestartGeneration = Optional.empty(); @@ -378,14 +376,10 @@ public class NodeAgentImpl implements NodeAgent { || (zone.getSystemName().isCd() && zone.getEnvironment() != Environment.prod); } - private void scheduleDownLoadIfNeeded(NodeSpec node, Optional container) { - if (node.getWantedDockerImage().equals(container.map(c -> c.image))) return; + private boolean downloadImageIfNeeded(NodeSpec node, Optional container) { + if (node.getWantedDockerImage().equals(container.map(c -> c.image))) return false; - if (dockerOperations.pullImageAsyncIfNeeded(node.getWantedDockerImage().get())) { - imageBeingDownloaded = node.getWantedDockerImage().get(); - } else if (imageBeingDownloaded != null) { // Image was downloading, but now it's ready - imageBeingDownloaded = null; - } + return node.getWantedDockerImage().map(dockerOperations::pullImageAsyncIfNeeded).orElse(false); } public void converge(NodeAgentContext context) { @@ -448,9 +442,8 @@ public class NodeAgentImpl implements NodeAgent { .filter(diskUtil -> diskUtil >= 0.8) .ifPresent(diskUtil -> storageMaintainer.removeOldFilesFromNode(context)); - scheduleDownLoadIfNeeded(node, container); - if (isDownloadingImage()) { - context.log(logger, "Waiting for image to download " + imageBeingDownloaded.asString()); + if (downloadImageIfNeeded(node, container)) { + context.log(logger, "Waiting for image to download " + context.node().getWantedDockerImage().get().asString()); return; } container = removeContainerIfNeededUpdateContainerState(context, container); @@ -633,11 +626,6 @@ public class NodeAgentImpl implements NodeAgent { return container; } - @Override - public boolean isDownloadingImage() { - return imageBeingDownloaded != null; - } - @Override public int getAndResetNumberOfUnhandledExceptions() { int temp = numberOfUnhandledException; -- cgit v1.2.3