You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Gary Helmling (JIRA)" <ji...@apache.org> on 2011/01/06 18:52:45 UTC

[jira] Updated: (HBASE-3405) Allow HBaseRpcMetrics to register custom interface methods

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

Gary Helmling updated HBASE-3405:
---------------------------------

    Attachment: HBASE-3405_2_0.90.patch

The patch allows alternate HRegionServer subclasses (and in the future coprocessors) to access HBaseRpcMetrics in order to register additional RPC methods into the metrics registry.

The changes are:
 * add getRpcMetrics() to HBaseServer to allow access to the HBaseRpcMetrics instance
 * add getRpcMetrics() to RegionServerServices (and HRegionServer) to allow for future coprocessor accounting
 * add HBaseRpcMetrics.createMetrics(Class[], boolean) overload -- if boolean is true, the registered method names will be prefixed with the class name.  This should help clarify origin for custom metrics and help prevent collisions.


This version differs from the previous review.hbase.org version only by changing the delimiter character for class + method attribute names from '.' to '$'.  According to JMX spec all attribute name chars must pass Character.isJavaIdentifierPart().  Should have checked that earlier...

> Allow HBaseRpcMetrics to register custom interface methods
> ----------------------------------------------------------
>
>                 Key: HBASE-3405
>                 URL: https://issues.apache.org/jira/browse/HBASE-3405
>             Project: HBase
>          Issue Type: Improvement
>          Components: ipc
>            Reporter: Gary Helmling
>            Priority: Minor
>         Attachments: HBASE-3405_2_0.90.patch
>
>
> Opened from comments on HBASE-2997.  James Kennedy notes:
> {quote}
> HBaseRpcMetrics is now logging a WARN message every time it encounters an unregistered RPC method.
> In my case I now get huge log files filled with these warnings because the hbase-trx transactional extension of HBase uses a subclass of HRegionServer that adds new interface methods.
> It's easy enough to tell log4j to ignore HBaseRpcMetrics output.
> However, it would be nice if the Server/HRegionServer HBaseRpcMetrics mechanism was more extensible so I could pass down new interfaces or grab the HBaseRpcMetrics object to add interfaces from up top...
> {quote}
> {{HBaseRpcMetrics}} already has a public method {{createMetrics(Class)}} to register method counters.  We just need a way to expose the metrics class to allow the region server subclass to call it -- add a {{getMetrics()}} method to {{RpcServer}} and {{HBaseServer}}.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.