aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2022-08-24 12:31:00 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2022-08-24 12:31:00 +0200
commit96d6c9b0024e32e1c32bd6533c3672a9c8289cd1 (patch)
tree65fe5dbe11fd3db15b8ceedea4faa264f1b54433 /node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java
parent9c5726880f750a2d99ef56cfc660774eacd35b4e (diff)
Purge old containers dimension value
Diffstat (limited to 'node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImpl.java16
1 files changed, 13 insertions, 3 deletions
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 a112c0d2697..528383eb91e 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
@@ -52,6 +52,7 @@ public class NodeAdminImpl implements NodeAdmin {
private final Gauge containerCount;
private final Counter numberOfUnhandledExceptions;
private final Metrics metrics;
+ private Dimensions previousMemoryOverheadDimensions = null;
public NodeAdminImpl(NodeAgentFactory nodeAgentFactory, Metrics metrics, Clock clock, FileSystem fileSystem) {
this(nodeAgentContext -> create(clock, nodeAgentFactory, nodeAgentContext),
@@ -113,7 +114,7 @@ public class NodeAdminImpl implements NodeAdmin {
@Override
public void updateMetrics(boolean isSuspended) {
- long numContainers = 0;
+ int numContainers = 0;
long totalContainerMemoryBytes = 0;
for (NodeAgentWithScheduler nodeAgentWithScheduler : nodeAgentWithSchedulerByHostname.values()) {
@@ -139,11 +140,20 @@ public class NodeAdminImpl implements NodeAdmin {
if (!isSuspended) {
containerCount.sample(numContainers);
ProcMeminfo meminfo = procMeminfoReader.read();
- metrics.declareGauge("mem.system.overhead", new Dimensions(Map.of("containers", Long.toString(numContainers))))
- .sample(meminfo.memTotalBytes() - meminfo.memAvailableBytes() - totalContainerMemoryBytes);
+ updateMemoryOverheadMetric(numContainers, meminfo.memTotalBytes() - meminfo.memAvailableBytes() - totalContainerMemoryBytes);
}
}
+ private void updateMemoryOverheadMetric(int numContainers, double memoryOverhead) {
+ final String name = "mem.system.overhead";
+ Dimensions dimensions = new Dimensions(Map.of("containers", Integer.toString(numContainers)));
+ metrics.declareGauge(Metrics.APPLICATION_HOST, name, dimensions, Metrics.DimensionType.DEFAULT)
+ .sample(memoryOverhead);
+ if (previousMemoryOverheadDimensions != null && !previousMemoryOverheadDimensions.equals(dimensions))
+ metrics.deleteMetricByDimension(name, previousMemoryOverheadDimensions, Metrics.DimensionType.DEFAULT);
+ previousMemoryOverheadDimensions = dimensions;
+ }
+
@Override
public boolean setFrozen(boolean wantFrozen) {
if (wantFrozen != previousWantFrozen) {