You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (Commented) (JIRA)" <ji...@apache.org> on 2012/02/22 07:24:50 UTC

[jira] [Commented] (HBASE-5433) [REST] Add metrics to keep track of success/failure count

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

stack commented on HBASE-5433:
------------------------------

+1 on patch.

Mubarak, can you see the metrics coming out in your metrics system?  They show ok?

Will commit tomorrow unless objection (Andy?  Want to check it out?)
                
> [REST] Add metrics to keep track of success/failure count
> ---------------------------------------------------------
>
>                 Key: HBASE-5433
>                 URL: https://issues.apache.org/jira/browse/HBASE-5433
>             Project: HBase
>          Issue Type: Improvement
>          Components: metrics, rest
>    Affects Versions: 0.94.0
>            Reporter: Mubarak Seyed
>            Assignee: Mubarak Seyed
>              Labels: noob
>             Fix For: 0.94.0
>
>         Attachments: HBASE-5433.trunk.v1.patch
>
>
> In a production environment, the visibility of successful REST request(s) are not getting exposed to metric system as we have only one metric (requests) today.
> Proposing to add more metrics such as successful_get_count, failed_get_count, successful_put_count, failed_put_count
> The current implementation increases the request count at the beginning of the method implementation and it is very hard to monitor requests (unless turn on debug, find the row_key and validate it in get/scan using hbase shell), it will be very useful to ops to keep an eye as requests from cross data-centers are trying to write data to one cluster using REST gateway through load balancer (and there is no visibility of which REST-server/RS failed to write data)
> {code}
>  Response update(final CellSetModel model, final boolean replace) {
>     // for requests
>     servlet.getMetrics().incrementRequests(1);
>        ..  
>        ..
>       table.put(puts);
>       table.flushCommits();
>       ResponseBuilder response = Response.ok();
>       // for successful_get_count
>       servlet.getMetrics().incrementSuccessfulGetRequests(1);
>       return response.build();
>     } catch (IOException e) {
>       // for failed_get_count
>       servlet.getMetrics().incrementFailedGetRequests(1);
>       throw new WebApplicationException(e,
>                   Response.Status.SERVICE_UNAVAILABLE);
>     } finally {
>     }
>   }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira