diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java index 5447845..ef5f6d4 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java @@ -126,6 +126,17 @@ static QueueMetrics forQueue(String queueName, Queue parent, enableUserMetrics, conf); } + // this method is here because we want these metrics to be seen when + // queue metrics is registered + private void initAppStatusMetrics() { + appsSubmitted.incr(0); + appsRunning.incr(0); + appsPending.incr(0); + appsCompleted.incr(0); + appsKilled.incr(0); + appsFailed.incr(0); + } + /** * Helper method to clear cache - used only for unit tests. */ @@ -156,6 +167,7 @@ static QueueMetrics forQueue(MetricsSystem ms, String queueName, ms.register( sourceName(queueName).toString(), "Metrics for queue: " + queueName, metrics); + metrics.initAppStatusMetrics(); } queueMetrics.put(queueName, metrics); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java index f91f9e6..67c6ce2 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestQueueMetrics.java @@ -60,6 +60,8 @@ public void setUp() { QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, false, conf); MetricsSource queueSource= queueSource(ms, queueName); + checkApps(queueSource, 0, 0, 0, 0, 0, 0); + AppSchedulingInfo app = mockApp(user); metrics.submitApp(user, 1);