浏览代码

YARN-10116. Expose diagnostics in RMAppManager summary

(cherry picked from commit 314e2f9d2e888fae1e5bf669aeeead84a928d282)
(cherry picked from commit 147897da4b420b4749f3c7b410f4c329632c3352)
Jonathan Hung 5 年之前
父节点
当前提交
5dfd1dcfe3

+ 2 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java

@@ -217,8 +217,8 @@ public class RMAppManager implements EventHandler<RMAppManagerEvent>,
                   == null
                   == null
                   ? ""
                   ? ""
                   : app.getApplicationSubmissionContext()
                   : app.getApplicationSubmissionContext()
-                      .getNodeLabelExpression());
-
+                      .getNodeLabelExpression())
+          .add("diagnostics", app.getDiagnostics());
       return summary;
       return summary;
     }
     }
 
 

+ 4 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java

@@ -1011,6 +1011,8 @@ public class TestAppManager{
         new RMAppMetrics(Resource.newInstance(1234, 56),
         new RMAppMetrics(Resource.newInstance(1234, 56),
             10, 1, resourceSecondsMap, new HashMap<>());
             10, 1, resourceSecondsMap, new HashMap<>());
     when(app.getRMAppMetrics()).thenReturn(metrics);
     when(app.getRMAppMetrics()).thenReturn(metrics);
+    when(app.getDiagnostics()).thenReturn(new StringBuilder(
+        "Multiline\n\n\r\rDiagnostics=Diagn,ostic"));
 
 
     RMAppManager.ApplicationSummary.SummaryBuilder summary =
     RMAppManager.ApplicationSummary.SummaryBuilder summary =
         new RMAppManager.ApplicationSummary().createAppSummary(app);
         new RMAppManager.ApplicationSummary().createAppSummary(app);
@@ -1033,6 +1035,8 @@ public class TestAppManager{
     assertTrue(msg.contains("applicationType=MAPREDUCE"));
     assertTrue(msg.contains("applicationType=MAPREDUCE"));
     assertTrue(msg.contains("applicationTags=tag1\\,tag2"));
     assertTrue(msg.contains("applicationTags=tag1\\,tag2"));
     assertTrue(msg.contains("applicationNodeLabel=test"));
     assertTrue(msg.contains("applicationNodeLabel=test"));
+    assertTrue(msg.contains("diagnostics=Multiline" + escaped
+        + "Diagnostics\\=Diagn\\,ostic"));
   }
   }
 
 
   @Test
   @Test