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

Chris A. Mattmann edited comment on OODT-139 at 2/15/11 3:15 PM:
-----------------------------------------------------------------

I just wanted to provide some documentation on how to call the Health Monitor 
service. 

h2. JSON output format

All calls to the Health Monitor REST service provide the following JSON output:

{noformat}
{
    "report": {
        "crawlerStatus": {
            "Crawler1": {
                "crawlerName": "Crawler1", 
                "crawlerPort": "9020", 
                "status": "UP", 
                "url": "localhost"
            }
        }, 
        "daemonStatus": {
            "stubs": [
                {
                    "daemon": "batch stub", 
                    "status": "UP", 
                    "url": "http://localhost:2001";
                }
            ], 
            "fm": {
                "daemon": "File Manager", 
                "status": "UP", 
                "url": "http://localhost:9000";
            }, 
            "rm": {
                "daemon": "Resource Manager", 
                "status": "UP", 
                "url": "http://localhost:9002";
            }, 
            "wm": {
                "daemon": "Workflow Manager", 
                "status": "UP", 
                "url": "http://localhost:9001";
            }
        }, 
        "generated": "2011-02-15T06:57:07.591-0800", 
        "ingestHealth": [
            {
                "avgCrawlTime": 132.78640211640212, 
                "crawler": "Crawler1", 
                "numCrawls": 189
            }
        ], 
        "jobHealth": [
            {
                "numJobs": 0, 
                "state": "QUEUED"
            }, 
            {
                "numJobs": 0, 
                "state": "RSUBMIT"
            }, 
            {
                "numJobs": 0, 
                "state": "BUILDING CONFIG FILE"
            }, 
            {
                "numJobs": 0, 
                "state": "PGE EXEC"
            }, 
            {
                "numJobs": 0, 
                "state": "CRAWLING"
            }, 
            {
                "numJobs": 0, 
                "state": "STAGING INPUT"
            }, 
            {
                "numJobs": 7, 
                "state": "FINISHED"
            }, 
            {
                "numJobs": 0, 
                "state": "STARTED"
            }, 
            {
                "numJobs": 0, 
                "state": "PAUSED"
            }
        ], 
        "latestFiles": {
            "files": [
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:19:21.126-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:08:10.198-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:06:03.659-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/blah.txt/blah.txt", 
                    "receivedTime": "2011-01-21T21:56:03.922-08:00"
                }
            ], 
            "topN": 20
        }
    }
}


{noformat}

The below REST-ful service descriptions show how to slice out different parts 
of the report. All reports at least have the *generatedTime* attribute, and 
then some combination of *daemonStatus*, and/or *crawlerStatus*, and (if the 
file manager is running) *latestFiles*, and if the workflow manager is running 
*jobHealth*, and if the crawlers are running *ingestHealth*.

h2. Full Report

To see the full Health Monitor report, access:

{noformat}
http://host/pcs-services/services/health/report
{noformat}

h2. Just the Daemons

To see the Health Monitor report, focused on just the PCS daemons (including 
batch stubs), access:

{noformat}
http://host/pcs-services/services/health/report/daemon
{noformat}

Note that daemons can be further "sliced out" by adding additional REST 
parameters, e.g.:

h3. To see just the file manager status:

{noformat}
http://host/pcs-services/services/health/report/daemon/fm
{noformat}

h3. To see just the workflow manager status

{noformat}
http://host/pcs-services/services/health/report/daemon/wm
{noformat}

h3. To see just the resource manager status

{noformat}
http://host/pcs-services/services/health/report/daemon/rm
{noformat}

h3. To see just the batch stub status

{noformat}
http://host/pcs-services/services/health/report/daemon/stubs
{noformat}






      was (Author: chrismattmann):
    I just wanted to provide some documentation on how to call the Health 
Monitor service. 

h2. JSON output format

All calls to the Health Monitor REST service provide the following JSON output:

{noformat}
{
    "report": {
        "crawlerStatus": {
            "Crawler1": {
                "crawlerName": "Crawler1", 
                "crawlerPort": "9020", 
                "status": "UP", 
                "url": "localhost"
            }
        }, 
        "daemonStatus": {
            "batch stubs": [
                {
                    "daemon": "batch stub", 
                    "status": "UP", 
                    "url": "http://localhost:2001";
                }
            ], 
            "fm": {
                "daemon": "File Manager", 
                "status": "UP", 
                "url": "http://localhost:9000";
            }, 
            "rm": {
                "daemon": "Resource Manager", 
                "status": "UP", 
                "url": "http://localhost:9002";
            }, 
            "wm": {
                "daemon": "Workflow Manager", 
                "status": "UP", 
                "url": "http://localhost:9001";
            }
        }, 
        "generated": "2011-02-15T06:57:07.591-0800", 
        "ingestHealth": [
            {
                "avgCrawlTime": 132.78640211640212, 
                "crawler": "Crawler1", 
                "numCrawls": 189
            }
        ], 
        "jobHealth": [
            {
                "numJobs": 0, 
                "state": "QUEUED"
            }, 
            {
                "numJobs": 0, 
                "state": "RSUBMIT"
            }, 
            {
                "numJobs": 0, 
                "state": "BUILDING CONFIG FILE"
            }, 
            {
                "numJobs": 0, 
                "state": "PGE EXEC"
            }, 
            {
                "numJobs": 0, 
                "state": "CRAWLING"
            }, 
            {
                "numJobs": 0, 
                "state": "STAGING INPUT"
            }, 
            {
                "numJobs": 7, 
                "state": "FINISHED"
            }, 
            {
                "numJobs": 0, 
                "state": "STARTED"
            }, 
            {
                "numJobs": 0, 
                "state": "PAUSED"
            }
        ], 
        "latestFiles": {
            "files": [
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:19:21.126-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:08:10.198-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/foo.bar/foo.bar", 
                    "receivedTime": "2011-01-22T15:06:03.659-08:00"
                }, 
                {
                    "filepath": "/Users/mattmann/files/blah.txt/blah.txt", 
                    "receivedTime": "2011-01-21T21:56:03.922-08:00"
                }
            ], 
            "topN": 20
        }
    }
}


{noformat}

The below REST-ful service descriptions show how to slice out different parts 
of the report. All reports at least have the *generatedTime* attribute, and 
then some combination of *daemonStatus*, and/or *crawlerStatus*, and (if the 
file manager is running) *latestFiles*, and if the workflow manager is running 
*jobHealth*, and if the crawlers are running *ingestHealth*.

h2. Full Report

To see the full Health Monitor report, access:

{noformat}
http://host/pcs-services/services/health/report
{noformat}
  
> PCS JAX-RS services
> -------------------
>
>                 Key: OODT-139
>                 URL: https://issues.apache.org/jira/browse/OODT-139
>             Project: OODT
>          Issue Type: New Feature
>          Components: pcs
>            Reporter: Chris A. Mattmann
>            Assignee: Chris A. Mattmann
>              Labels: jaxrs, jsr311, pcs
>             Fix For: 0.3
>
>         Attachments: OODT-139.Mattmann.021311.patch.txt, 
> OODT-139.Mattmann.021411.2.patch.txt, OODT-139.Mattmann.021411.patch.txt
>
>
> Now that the PCS core is contributed, it would be great to not just have 
> command line versions and APIs for tools like pcs_stat, pcstrace and pcs_ll. 
> We should expose them over JAX-RS so that webapps can easily take advantage 
> of PCS services.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to