diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java index a98d31c2a2b..6d9cb5e4ff5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeStatusUpdaterImpl.java @@ -203,6 +203,7 @@ protected void serviceInit(Configuration conf) throws Exception { LOG.info("Nodemanager resources is set to: " + totalResource); + metrics.setTotalResources(totalResource); metrics.addResource(totalResource); // Get actual node physical resources diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/metrics/NodeManagerMetrics.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/metrics/NodeManagerMetrics.java index 848b9445289..1c76568c413 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/metrics/NodeManagerMetrics.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/metrics/NodeManagerMetrics.java @@ -116,6 +116,10 @@ @Metric("Container localization time in milliseconds") MutableRate localizationDurationMillis; + @Metric("Total amount of memory in GB on this machine") + MutableGaugeInt totalGB; + @Metric("Total # of Virtual Cores on this machine") + MutableGaugeInt totalVCores; // CHECKSTYLE:ON:VisibilityModifier private JvmMetrics jvmMetrics = null; @@ -123,6 +127,7 @@ private long allocatedMB; private long availableMB; private long allocatedOpportunisticMB; + private static final double MiB_IN_GiB = 1024d; private NodeManagerMetrics(JvmMetrics jvmMetrics) { this.jvmMetrics = jvmMetrics; @@ -291,6 +296,11 @@ public void setPrivateBytesDeleted(long privateBytesDeleted) { this.privateBytesDeleted.set(privateBytesDeleted); } + public void setTotalResources(Resource res) { + totalGB.set((int)Math.floor(res.getMemorySize()/ MiB_IN_GiB)); + totalVCores.set(res.getVirtualCores()); + } + public int getRunningContainers() { return containersRunning.value(); }