Browse Source

YARN-10456. RM PartitionQueueMetrics records are named QueueMetrics in Simon metrics registry. Contributed by Eric Payne.

(cherry picked from commit 632f64cadb1dfd8f0940e350b9314b4d4f8eda4b)
Jim Brennan 3 years ago
parent
commit
b3481062e0

+ 5 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/QueueMetrics.java

@@ -167,7 +167,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;

+ 8 - 0
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.resourcemanager.scheduler.capacity.CSQueueM
 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 class TestPartitionQueueMetrics {
     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);
   }
 
   /**