HBase 源码中增加jmx数据收集

背景:因为要增加一些region级别的metric的统计,又不想在regionload中增加metric(会心跳给master),于是决定在regionserver的jmx信息中增加metric

从jmx中找一些关键字,在代码里搜索一下mutate,可以看到jmx接口的metric名是在MetricsRegionServerSource中定义的,找一个我们常用的metirc:
String MUTATE_KEY = “mutate”;
看一下在哪里被引用了。
可以看到MetricsRegionServerSourceImpl 和 MetricsRegionSourceImpl中都有用到这个变量
从类名可以看到一个是regionserver级别相关的,一个是reigon级别的。因为我们要收集的是region级别的数据,所以,看一下MetricsRegionSourceImpl这个类

尝试了一下,在MetricsRegionSourceImpl的snapshot方法中调用MetricsRecordBuilder的addXXX()或者tag方法(String类型metric value)即可添加metrics到jmx中

相关类:
1.MetricsRegionServerSource:metric名定义,
2.MetricsRegionSourceImpl
3.BaseSourceImpl:public class BaseSourceImpl implements BaseSource, MetricsSource
–BaseSource
–MetricsSource:定义了方法getMetric ,一般在里面把metric信息填充到MetricsRecordBuilder
4.MetricsRegionAggregateSourceImpl : region metrics 聚合的类
public class MetricsRegionAggregateSourceImpl extends BaseSourceImpl
implements MetricsRegionAggregateSource

你可能感兴趣的:(java,nosql,hadoop,hbase)