diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java b/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 6315e704c3..8c9d3819f0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java @@ -181,7 +181,11 @@ public class QueueMetrics implements MetricsSource { public QueueMetrics(MetricsSystem ms, String queueName, Queue parent, boolean enableUserMetrics, Configuration conf) { - registry = new MetricsRegistry(RECORD_INFO); + if (this instanceof PartitionQueueMetrics) { + registry = new MetricsRegistry(P_RECORD_INFO); + } else { + registry = new MetricsRegistry(RECORD_INFO); + } this.queueName = queueName; this.parent = parent != null ? parent.getMetrics() : null; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestPartitionQueueMetrics.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestPartitionQueueMetrics.java index ab4296cc4f..8424f195e2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestPartitionQueueMetrics.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestPartitionQueueMetrics.java @@ -37,6 +37,7 @@ import org.apache.hadoop.yarn.server.utils.BuilderUtils; import org.apache.hadoop.yarn.util.resource.Resources; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -110,6 +111,13 @@ public void testSinglePartitionWithSingleLevelQueueMetrics() checkResources(partitionSource, 0, 0, 0, 200 * GB, 200, 5 * GB, 5, 5); checkResources(rootQueueSource, 0, 0, 0, 200 * GB, 200, 5 * GB, 5, 5); checkResources(q2Source, 0, 0, 0, 0, 0, 3 * GB, 3, 3); + + PartitionQueueMetrics pq1 = + new PartitionQueueMetrics(ms, "root.q1", parentQueue, true, CONF, "x"); + Assert.assertTrue("Name of registry should be \"" + + PartitionQueueMetrics.P_RECORD_INFO.name() + "\", but was \"" + + pq1.registry.info().name() + "\".", pq1.registry.info().name() + .compareTo(PartitionQueueMetrics.P_RECORD_INFO.name()) == 0); } /**