Skip to content

Commit eb640a6

Browse files
rahulLivingvirajjasani
authored andcommitted
HBASE-25460 : Expose drainingServers as cluster metric (#2994) (#2995)
Signed-off-by: Viraj Jasani <[email protected]>
1 parent ddbb3e4 commit eb640a6

File tree

5 files changed

+41
-0
lines changed

5 files changed

+41
-0
lines changed

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ public interface MetricsMasterSource extends BaseSource {
5555
String AVERAGE_LOAD_NAME = "averageLoad";
5656
String LIVE_REGION_SERVERS_NAME = "liveRegionServers";
5757
String DEAD_REGION_SERVERS_NAME = "deadRegionServers";
58+
String DRAINING_REGION_SERVER_NAME = "draininigRegionServers";
5859
String NUM_REGION_SERVERS_NAME = "numRegionServers";
5960
String NUM_DEAD_REGION_SERVERS_NAME = "numDeadRegionServers";
61+
String NUM_DRAINING_REGION_SERVERS_NAME = "numDrainingRegionServers";
6062
String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum";
6163
String SERVER_NAME_NAME = "serverName";
6264
String CLUSTER_ID_NAME = "clusterId";
@@ -73,6 +75,8 @@ public interface MetricsMasterSource extends BaseSource {
7375
String NUMBER_OF_REGION_SERVERS_DESC = "Number of RegionServers";
7476
String DEAD_REGION_SERVERS_DESC = "Names of dead RegionServers";
7577
String NUMBER_OF_DEAD_REGION_SERVERS_DESC = "Number of dead RegionServers";
78+
String DRAINING_REGION_SERVER_DESC = "Names of draining RegionServers";
79+
String NUMBER_OF_DRAINING_REGION_SERVERS_DESC = "Number of draining RegionServers";
7680
String ZOOKEEPER_QUORUM_DESC = "ZooKeeper Quorum";
7781
String SERVER_NAME_DESC = "Server Name";
7882
String CLUSTER_ID_DESC = "Cluster Id";

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,20 @@ public interface MetricsMasterWrapper {
117117
*/
118118
int getNumDeadRegionServers();
119119

120+
/**
121+
* Get the draining region servers
122+
*
123+
* @return Draining region server
124+
*/
125+
String getDrainingRegionServers();
126+
127+
/**
128+
* Get the number of draining region servers
129+
*
130+
* @return number of draining region servers
131+
*/
132+
int getNumDrainingRegionServers();
133+
120134
/**
121135
* Get the number of master WAL files.
122136
*/

hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) {
108108
.addGauge(Interns.info(NUM_DEAD_REGION_SERVERS_NAME,
109109
NUMBER_OF_DEAD_REGION_SERVERS_DESC),
110110
masterWrapper.getNumDeadRegionServers())
111+
.tag(Interns.info(DRAINING_REGION_SERVER_NAME, DRAINING_REGION_SERVER_DESC),
112+
masterWrapper.getDrainingRegionServers())
113+
.addGauge(Interns.info(NUM_DRAINING_REGION_SERVERS_NAME, NUMBER_OF_REGION_SERVERS_DESC),
114+
masterWrapper.getNumDrainingRegionServers())
111115
.tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
112116
masterWrapper.getZookeeperQuorum())
113117
.tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), masterWrapper.getServerName())

hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,24 @@ public int getNumDeadRegionServers() {
133133
return !(master.isStopped() || master.isStopping());
134134
}
135135

136+
@Override
137+
public String getDrainingRegionServers() {
138+
ServerManager serverManager = this.master.getServerManager();
139+
if (serverManager == null) {
140+
return "";
141+
}
142+
return StringUtils.join(serverManager.getDrainingServersList() , ";");
143+
}
144+
145+
@Override
146+
public int getNumDrainingRegionServers() {
147+
ServerManager serverManager = this.master.getServerManager();
148+
if (serverManager == null) {
149+
return 0;
150+
}
151+
return serverManager.getDrainingServersList().size();
152+
}
153+
136154
@Override
137155
public String getServerName() {
138156
ServerName serverName = master.getServerName();

hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public void testDefaultMasterMetrics() throws Exception {
139139
metricsHelper.assertGauge( "numRegionServers",1 + (tablesOnMaster? 1: 0), masterSource);
140140
metricsHelper.assertGauge( "averageLoad", 1 + (tablesOnMaster? 0: 1), masterSource);
141141
metricsHelper.assertGauge( "numDeadRegionServers", 0, masterSource);
142+
metricsHelper.assertGauge("numDrainingRegionServers", 0, masterSource);
142143

143144
metricsHelper.assertGauge("masterStartTime", master.getMasterStartTime(), masterSource);
144145
metricsHelper.assertGauge("masterActiveTime", master.getMasterActiveTime(), masterSource);

0 commit comments

Comments
 (0)