[ 
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.

Reply via email to