Andrew Purtell created PHOENIX-3584:
---------------------------------------

             Summary: Expose metrics for ConnectionQueryServices instances and 
their allocators in the JVM
                 Key: PHOENIX-3584
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3584
             Project: Phoenix
          Issue Type: Improvement
            Reporter: Andrew Purtell


In the case a client is leaking Phoenix/HBase connections it would be helpful 
to have metrics available on the number of ConnectionQueryServices 
(ConnectionQueryServicesImpl) instances and who has allocated them. 

For the latter, we could get a stacktrace when ConnectionQueryServicesImpls are 
allocated (should be a relatively rare) and keep a count by hash of the call 
stack (and save the call stack). Then we need a method to dump the hash to 
callstack map as a string. This method can be called remotely by JMX when 
debugging leaks in a live environment. Perhaps after the count of 
ConnectionQueryServicesImpls goes over a configurable threshold we can also log 
warnings that dump the counts by hash and callstacks corresponding to those 
hashes. 

Or, we should only have multiple ConnectionQueryServicesImpls if an optional 
parameter is passed in the JDBC connect string. We could keep counts by that 
parameter string and dump that instead of call stacks. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to