[
https://issues.apache.org/jira/browse/HBASE-3424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12998988#comment-12998988
]
Gary Helmling commented on HBASE-3424:
--------------------------------------
Sorry, I skipped quite a bit of background explanation here. Yes, this still
needs to be implemented within the coprocessor framework -- specifically within
{{HRegion.exec()}}.
The idea is that if you define a custom protocol for your coprocessor, like:
{noformat}
public interface RowCountProtocol extends CoprocessorProtocol {
public long count();
public long countForQualifier(byte[] family, byte[] qualifier)
}
{noformat}
This is ultimately invoked on the region server by a call to
{{HRegionInterface.execCoprocessor()}}. Current RPC metrics would contains
stats for the number of invocations of {{execCoprocessor()}} but this doesn't
tell you anything about what {{RowCountProtocol}} method was actually invoked.
So in {{HRegion.exec()}} we would add some code to increment metrics on the
wrapped {{RowCountProtocol}} method being called by {{Method.invoke()}}. Then
you would also have individual RPC metrics for {{RowCountProtocol.count()}} and
{{RowCountProtocol.countForQualifier()}}.
> Coprocessors: Add metrics for custom RPC methods called through
> HTable.coprocessorExec()
> ----------------------------------------------------------------------------------------
>
> Key: HBASE-3424
> URL: https://issues.apache.org/jira/browse/HBASE-3424
> Project: HBase
> Issue Type: Sub-task
> Components: ipc
> Reporter: Gary Helmling
> Priority: Minor
>
> Currently HBaseRpcMetrics only reports on known RPC methods in core HBase.
> With HBASE-3405 we added hooks to register metrics for new methods. We can
> make use of these for tabulating metrics on custom CoprocessorProtocol
> extensions invoked through HTable.coprocessorProxy() and
> HTable.coprocessorExec().
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira