Hi Paul, For the master process, you should see 2 MBeans registered (assuming distributed setup with default ports):
hadoop:name=MasterStatistics,service=Master hadoop:name=RPCStatistics-60000,service=HBase The first is master-specific metrics (just cluster request count I think?). The second is a common RPCStatistics MBean for the master's RPC calls. The RPCStatistics MBean will include whatever port is used in the name. For a regionserver, you should see: hadoop:name=RegionServerStatistics,service=RegionServer hadoop:name=RPCStatistics-60020,service=HBase So you should be able to just look for the MasterStatistics vs. RegionServerStatistics MBeans to distinguish between the 2. The RPCStatistics MBean is just a general part of the RPC implementation, so it appears in both places. Does that work for your case of distinguishing between the two processes? Are there other enhancements that would make your integration work better? Feel free to brainstorm here or post a jira! --gh On Fri, Apr 9, 2010 at 2:48 AM, Paul Smith <psm...@aconex.com> wrote: > Hi gents, related to the Parfait/PCP discussion recently, I'm hitting a > problem that I need your help. > > Right now a MetricContext implementation is initialised fairly early within > the Hbase/Hadoop lifecycle, and is given a chance to initialise which is > good. However what I've noticed is that other parts of the JMX namespace do > not appear for, say, the HMaster process until quite late; well after the > MetricContext impl is initialized. > > My PCPContext implementation I'm working on is going to want to 'sniff' and > identify what type of process it is, mainly so as to be able to route > metrics to a locally named file identifying it as metrics from that service. > There is no way that I can spot at the moment where a MetricContext can be > told that the process own initialization is complete. I'd like to have this > so that a proper exploration of the JMX namespace can happen to export > things like JVM metrics etc. > > Can someone point me in the right direction here? For example, once the > HMaster is started up, there exists a JMX bean with the name pattern > 'hadoop:service=Master' namespace. Unfortunately the RegionServer process > has a pattern that is 'hadoop:service=HBase', but that ALSO appears in the > Master process (and early) so right now my naive topology sniffing is seeing > this and thinking the Master is a RegionServer. > > If I can delay my PCPContext initialization (even by just waiting until I > can detect something has occurred) until the rest of the HBase process is > properly up and running, then I think I'm off and racing. > > Any hooks or ideas on this would be appreciated. > > Paul