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..ea531f0 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,15 @@ static QueueMetrics forQueue(String queueName, Queue parent, enableUserMetrics, conf); } + // this method is here because we want to make sure these metrics show up when + // app is submitted + private void initAppStatusMetrics() { + appsCompleted.incr(0); + appsKilled.incr(0); + appsFailed.incr(0); + reservedContainers.incr(0); + } + /** * Helper method to clear cache - used only for unit tests. */ @@ -228,6 +237,7 @@ public void submitApp(String user, int attemptId) { if (parent != null) { parent.submitApp(user, attemptId); } + initAppStatusMetrics(); } public void incrAppsRunning(AppSchedulingInfo app, String user) { 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..c25dda1 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,10 @@ 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); + checkResources(queueSource, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + + AppSchedulingInfo app = mockApp(user); metrics.submitApp(user, 1);