summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2019-09-13 16:50:17 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2019-09-13 16:50:17 +0200
commit6d82ca8d86c59cd852d473bab84c99305017000f (patch)
tree5d314c385a9c049c0c0d186058f22fd176c691d0 /node-admin
parent04694f5e9157f350af5bdbe4f39e272118a7eacb (diff)
Pass down node admin state to NodeAgent.updateContainerNodeMetrics
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java2
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java24
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java3
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgent.java2
4 files changed, 16 insertions, 15 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java
index 7de2aae77c8..6d9eae5c4dc 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdmin.java
@@ -17,7 +17,7 @@ public interface NodeAdmin {
void refreshContainersToRun(Set<NodeAgentContext> nodeAgentContexts);
/** Update node admin metrics */
- void updateMetrics();
+ void updateMetrics(boolean isSuspended);
/**
* Attempts to freeze/unfreeze all NodeAgents and itself. To freeze a NodeAgent means that
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 5d2639d0a77..dddb724e3d6 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
@@ -102,19 +102,21 @@ public class NodeAdminImpl implements NodeAdmin {
}
@Override
- public void updateMetrics() {
+ public void updateMetrics(boolean isSuspended) {
for (NodeAgentWithScheduler nodeAgentWithScheduler : nodeAgentWithSchedulerByHostname.values()) {
- numberOfUnhandledExceptions.add(nodeAgentWithScheduler.getAndResetNumberOfUnhandledExceptions());
- nodeAgentWithScheduler.updateContainerNodeMetrics();
+ if (!isSuspended) numberOfUnhandledExceptions.add(nodeAgentWithScheduler.getAndResetNumberOfUnhandledExceptions());
+ nodeAgentWithScheduler.updateContainerNodeMetrics(isSuspended);
}
- Runtime runtime = Runtime.getRuntime();
- long freeMemory = runtime.freeMemory();
- long totalMemory = runtime.totalMemory();
- long usedMemory = totalMemory - freeMemory;
- jvmHeapFree.sample(freeMemory);
- jvmHeapUsed.sample(usedMemory);
- jvmHeapTotal.sample(totalMemory);
+ if (!isSuspended) {
+ Runtime runtime = Runtime.getRuntime();
+ long freeMemory = runtime.freeMemory();
+ long totalMemory = runtime.totalMemory();
+ long usedMemory = totalMemory - freeMemory;
+ jvmHeapFree.sample(freeMemory);
+ jvmHeapUsed.sample(usedMemory);
+ jvmHeapTotal.sample(totalMemory);
+ }
}
@Override
@@ -194,7 +196,7 @@ public class NodeAdminImpl implements NodeAdmin {
void start() { nodeAgent.start(currentContext()); }
void stopForHostSuspension() { nodeAgent.stopForHostSuspension(currentContext()); }
void stopForRemoval() { nodeAgent.stopForRemoval(currentContext()); }
- void updateContainerNodeMetrics() { nodeAgent.updateContainerNodeMetrics(currentContext()); }
+ void updateContainerNodeMetrics(boolean isSuspended) { nodeAgent.updateContainerNodeMetrics(currentContext(), isSuspended); }
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/nodeadmin/NodeAdminStateUpdater.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
index 4a76e0e0a5b..e375769882a 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminStateUpdater.java
@@ -79,8 +79,7 @@ public class NodeAdminStateUpdater {
EnumSet<State> suspendedStates = EnumSet.of(SUSPENDED_NODE_ADMIN, SUSPENDED);
metricsScheduler.scheduleAtFixedRate(() -> {
try {
- if (suspendedStates.contains(currentState)) return;
- nodeAdmin.updateMetrics();
+ nodeAdmin.updateMetrics(suspendedStates.contains(currentState));
} catch (Throwable e) {
log.log(Level.WARNING, "Metric fetcher scheduler failed", e);
}
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 f537884e708..341b4438f2c 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
@@ -30,7 +30,7 @@ public interface NodeAgent {
/**
* Updates metric receiver with the latest node-agent stats
*/
- default void updateContainerNodeMetrics(NodeAgentContext context) {}
+ default void updateContainerNodeMetrics(NodeAgentContext context, boolean isSuspended) {}
/**
* Returns and resets number of unhandled exceptions