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