1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.master;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
24 import org.apache.hadoop.metrics2.MetricsBuilder;
25 import org.apache.hadoop.metrics2.MetricsRecordBuilder;
26 import org.apache.hadoop.metrics2.lib.MetricMutableCounterLong;
27 import org.apache.hadoop.metrics2.lib.MetricMutableGaugeLong;
28 import org.apache.hadoop.metrics2.lib.MetricMutableHistogram;
29 import org.apache.hadoop.metrics2.lib.MetricMutableStat;
30
31
32
33
34
35
36 public class MetricsMasterSourceImpl
37 extends BaseSourceImpl implements MetricsMasterSource {
38
39 private static final Log LOG = LogFactory.getLog(MetricsMasterSourceImpl.class.getName());
40
41 private final MetricsMasterWrapper masterWrapper;
42 private MetricMutableCounterLong clusterRequestsCounter;
43
44
45 public MetricsMasterSourceImpl(MetricsMasterWrapper masterWrapper) {
46 this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT, masterWrapper);
47 }
48
49 public MetricsMasterSourceImpl(String metricsName,
50 String metricsDescription,
51 String metricsContext,
52 String metricsJmxContext,
53 MetricsMasterWrapper masterWrapper) {
54 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
55 this.masterWrapper = masterWrapper;
56 }
57
58 @Override
59 public void init() {
60 super.init();
61 clusterRequestsCounter = metricsRegistry.newCounter(CLUSTER_REQUESTS_NAME, "", 0l);
62 }
63
64 public void incRequests(final int inc) {
65 this.clusterRequestsCounter.incr(inc);
66 }
67
68
69
70
71
72
73
74 @Override
75 public void getMetrics(MetricsBuilder metricsBuilder, boolean all) {
76
77 MetricsRecordBuilder metricsRecordBuilder = metricsBuilder.addRecord(metricsName)
78 .setContext(metricsContext);
79
80
81 if (masterWrapper != null) {
82 metricsRecordBuilder
83 .addGauge(MASTER_ACTIVE_TIME_NAME,
84 MASTER_ACTIVE_TIME_DESC, masterWrapper.getActiveTime())
85 .addGauge(MASTER_START_TIME_NAME,
86 MASTER_START_TIME_DESC, masterWrapper.getStartTime())
87 .addGauge(AVERAGE_LOAD_NAME, AVERAGE_LOAD_DESC, masterWrapper.getAverageLoad())
88 .addGauge(NUM_REGION_SERVERS_NAME,
89 NUMBER_OF_REGION_SERVERS_DESC, masterWrapper.getRegionServers())
90 .addGauge(NUM_DEAD_REGION_SERVERS_NAME,
91 NUMBER_OF_DEAD_REGION_SERVERS_DESC,
92 masterWrapper.getDeadRegionServers())
93 .tag(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC, masterWrapper.getZookeeperQuorum())
94 .tag(SERVER_NAME_NAME, SERVER_NAME_DESC, masterWrapper.getServerName())
95 .tag(CLUSTER_ID_NAME, CLUSTER_ID_DESC, masterWrapper.getClusterId())
96 .tag(IS_ACTIVE_MASTER_NAME,
97 IS_ACTIVE_MASTER_DESC,
98 String.valueOf(masterWrapper.getIsActiveMaster()));
99 }
100
101 metricsRegistry.snapshot(metricsRecordBuilder, all);
102 }
103
104 }