You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2026/09/29 06:17:00 UTC

[jira] [Commented] (YARN-10421) Create YarnDiagnosticsService to serve diagnostic queries

    [ https://issues.apache.org/jira/browse/YARN-10421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18120531#comment-18120531 ] 

ASF GitHub Bot commented on YARN-10421:
---------------------------------------

Hean-Chhinling opened a new pull request, #8762:
URL: https://github.com/apache/hadoop/pull/8762

   
   ### Description of PR
   This PR is part of the [YARN-10323 [Umbrella] YARN Diagnostic collector](https://issues.apache.org/jira/browse/YARN-10323). 
   
   It aims is to expose 2 new endpoints on ResourceManager for calling the python `diagnostic_collector.py`:
   
   1. `{rm_address}/ws/v1/cluster/common-issues/list` list out the available issues, e.g. 
   ```
   {
     "issue": [
       {
         "name": "application_diagnostic",
         "parameters": [
           "appId"
         ]
       },
       {
         "name": "scheduler_related_issue"
       }
     ]
   }
   ```
   2. `{rm_address}/ws/v1/cluster/common-issues/collect?issueId={}?args={}/, e.g. 
   `http://locahost:8088/ws/v1/cluster/common-issues/collect?issueId=application_diagnostic?args=application_1740465819367_0009`
   
   Example of the response:
   
   ```
   {
     "generatedAt": "2026-09-29T02:24:30.345Z",
     "appId": "application_1789971760389_0001",
     "issueId": "application_diagnostic",
     "issueData": {
       "file": [
         {
           "content": "......",
           "contentType": "text/plain",
           "filename": "application_jstack"
         },
        "file": [
         {
           "content": "......",
           "contentType": "text/plain",
           "filename": "application_jstack"
         }
        ]
      }
   }
   ```
   
   This PR depends on the following PRs:
   
   1. https://github.com/apache/hadoop/pull/8123  for new JStacks endpoints. 
   2. https://github.com/apache/hadoop/pull/8742 for python diagnostic collector script
   
   ### How was this patch tested?
   Tested in locally and in High Availability environment cluster. 
   Also there is a unit-test for the new DiagnosticService class.
   
   ### For code changes:
   
   - [ ] Does the title of this PR start with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
   - [ ] Object storage: Have the integration tests been executed and the endpoint
         declared according to the connector-specific documentation? *Note: Automated CI
         testing doesn't cover all cases so manual testing with cloud storage is still
         required.*
   - [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)?
   - [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, `NOTICE-binary` files?
   
   ### AI Tooling
   
   If an AI tool was used:
   
   - [ ] The PR includes the phrase "Contains content generated by <tool>"
         where <tool> is the name of the AI tool used.
   - [ ] My use of AI contributions follows the ASF legal policy
         https://www.apache.org/legal/generative-tooling.html
   




> Create YarnDiagnosticsService to serve diagnostic queries 
> ----------------------------------------------------------
>
>                 Key: YARN-10421
>                 URL: https://issues.apache.org/jira/browse/YARN-10421
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Benjamin Teke
>            Assignee: chhinlinghean
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: YARN-10421.001.patch, YARN-10421.002.patch, YARN-10421.003.patch, YARN-10421.004.patch
>
>
> YarnDiagnosticsServlet should run inside ResourceManager Daemon. The servlet forks a separate process, which executes a shell/Python/etc script. Based on the use-cases listed below the script collects information, bundles it and sends it to UI2. The diagnostic options are the following:
>  # Application hanging: 
>  ** Application logs
>  ** Find the hanging container and get multiple Jstacks
>  ** ResourceManager logs during job lifecycle
>  ** NodeManager logs from NodeManager where the hanging containers of the jobs ran
>  ** Job configuration from MapReduce HistoryServer, Spark HistoryServer, Tez History URL
>  # Application failed: 
>  ** Application logs
>  ** ResourceManager logs during job lifecycle.
>  ** NodeManager logs from NodeManager where the hanging containers of the jobs ran
>  ** Job Configuration from MapReduce HistoryServer, Spark HistoryServer, Tez History URL.
>  ** Job related metrics like container, attempts.
>  # Scheduler related issue:
>  ** ResourceManager Scheduler logs with DEBUG enabled for 2 minutes.
>  ** Multiple Jstacks of ResourceManager
>  ** YARN and Scheduler Configuration
>  ** Cluster Scheduler API _/ws/v1/cluster/scheduler_ and Cluster Nodes API _/ws/v1/cluster/nodes response_
>  ** Scheduler Activities _/ws/v1/cluster/scheduler/bulkactivities_ response (YARN-10319)
>  # ResourceManager / NodeManager daemon fails to start:
>  ** ResourceManager and NodeManager out and log file
>  ** YARN and Scheduler Configuration
> Two new endpoints should be added to the RM web service: one for listing the available diagnostic options (_/common-issue/list_), and one for calling a selected option with the user provided parameters (_/common-issue/collect_).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org