Ray Mattingly created HBASE-28430:
-------------------------------------
Summary: RpcThrottlingException messages should describe the
throttled access pattern
Key: HBASE-28430
URL: https://issues.apache.org/jira/browse/HBASE-28430
Project: HBase
Issue Type: Improvement
Reporter: Ray Mattingly
Right now we catch RpcThrottlingExceptions and have some debug logging in
[RegionServerRpcQuotaManager|https://github.com/apache/hbase/blob/98eb3e01b352684de3c647a6fda6208a657c4607/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java#L234-L236]
— this is okay support for in depth explanations, but is not trivially
transparent to users.
For example, at my day job we have proxy APIs which sit between HBase and many
microservices. We throttle these microservices in isolation, but the
RpcThrottlingExceptions appear to be indiscriminate in the stdout of the proxy
API.
If we added the given username, table, and namespace to RpcThrottlingException
messages then understanding the nature and specificity of any given throttle
violation should be much more straightforward. Given that quotas/throttling is
most useful in a multi-tenant environment, I would anticipate this being a
pretty universal usability pain point.
It would be a bit more complicated, but we should also consider including more
information about the rate limiter which has been violated. For example, what
is the current configured read size limit that we've exceeded?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)