You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Nate Cole (JIRA)" <ji...@apache.org> on 2014/01/09 22:37:51 UTC

[jira] [Updated] (AMBARI-4253) API improvements for exposing alert info

     [ https://issues.apache.org/jira/browse/AMBARI-4253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nate Cole updated AMBARI-4253:
------------------------------

    Attachment: AMBARI-4253.patch

> API improvements for exposing alert info
> ----------------------------------------
>
>                 Key: AMBARI-4253
>                 URL: https://issues.apache.org/jira/browse/AMBARI-4253
>             Project: Ambari
>          Issue Type: Task
>          Components: controller
>            Reporter: Nate Cole
>            Assignee: Nate Cole
>             Fix For: 1.5.0
>
>         Attachments: AMBARI-4253.patch
>
>
> Currently, alerts are exposed via the API from the Nagios Server host component.
> The component returns the "nagios_alerts" attribute, which contains the alert info for all the services and hosts. 
> This "nagios_alerts" object can be potentially huge depending on the number of hosts, and the client code needs to parse and rollup the info for all alerts.  This is expensive and causes the UI to freeze every time "nagios_alerts" is updated from the server.
> Here's what the UI needs from the API:
> 1. Provide ability to get alerts by host
> 2. Provide ability to get alerts by service
> 3. Expose # of warn/critical alerts for the Service resource (rollup)
> 4. Expose # of warn/critical alerts for the Host resource (rollup)
> Solution will make an alerts structure part of the services and hosts and points.  Samples:
> {noformat}
> GET /api/v1/clusters/c1/hosts?fields=alerts
> GET /api/v1/clusters/c1/hosts?fields=alerts/summary
> GET /api/v1/clusters/c1/hosts?fields=alerts/detail
> GET /api/v1/clusters/c1/services?fields=alerts
> GET /api/v1/clusters/c1/services?fields=alerts/summary
> GET /api/v1/clusters/c1/services?fields=alerts/detail
> {noformat}
> Expanded sample:
> {noformat}
> GET /api/v1/clusters/c1/hosts?fields=alerts
> {
>   "href" : "...",
>   "items" : [
>     {
>       "href" : "http://localhost:8080/api/v1/clusters/c1/hosts/h1",
>       "Hosts" : {
>         "cluster_name" : "c1",
>         "host_name" : "h1"
>       },
>       "alerts" : {
>         "summary" : {
>           "CRITICAL" : 2,
>           "OK" : 19,
>           "WARNING" : 0
>         },
>       "detail" : [
>         {
>            "description" : "Ambari Agent process",
>            "host_name" : "h1",
>            "last_status" : "OK",
>            "last_status_time" : 1389125372,
>            "service_name" : "AMBARI",
>            "status" : "OK",
>            "status_time" : 1389300812,
>            "output" : "TCP OK - 0.000 second response time on port 8670"
>          }, ...
>        ]
>       }
>     },
>     ...
> }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)