Skip to content

Commit 0266479

Browse files
rahulLivingvirajjasani
authored andcommitted
HBASE-25460 : Expose drainingServers as cluster metric (apache#2994) (apache#2995)
Signed-off-by: Viraj Jasani <vjasani@apache.org> (cherry picked from commit e5f32be) Change-Id: I332296e4892b4f36d063ae8a09f5a8b5d67951cc
1 parent ee403d4 commit 0266479

5 files changed

Lines changed: 41 additions & 0 deletions

File tree

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
@@ -112,6 +112,20 @@ public interface MetricsMasterWrapper {
112112
*/
113113
int getNumDeadRegionServers();
114114

115+
/**
116+
* Get the draining region servers
117+
*
118+
* @return Draining region server
119+
*/
120+
String getDrainingRegionServers();
121+
122+
/**
123+
* Get the number of draining region servers
124+
*
125+
* @return number of draining region servers
126+
*/
127+
int getNumDrainingRegionServers();
128+
115129
/**
116130
* Get the number of master WAL files.
117131
*/

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
@@ -106,6 +106,10 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) {
106106
.addGauge(Interns.info(NUM_DEAD_REGION_SERVERS_NAME,
107107
NUMBER_OF_DEAD_REGION_SERVERS_DESC),
108108
masterWrapper.getNumDeadRegionServers())
109+
.tag(Interns.info(DRAINING_REGION_SERVER_NAME, DRAINING_REGION_SERVER_DESC),
110+
masterWrapper.getDrainingRegionServers())
111+
.addGauge(Interns.info(NUM_DRAINING_REGION_SERVERS_NAME, NUMBER_OF_REGION_SERVERS_DESC),
112+
masterWrapper.getNumDrainingRegionServers())
109113
.tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
110114
masterWrapper.getZookeeperQuorum())
111115
.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
@@ -129,6 +129,24 @@ public int getNumDeadRegionServers() {
129129
return serverManager.getDeadServers().size();
130130
}
131131

132+
@Override
133+
public String getDrainingRegionServers() {
134+
ServerManager serverManager = this.master.getServerManager();
135+
if (serverManager == null) {
136+
return "";
137+
}
138+
return StringUtils.join(serverManager.getDrainingServersList() , ";");
139+
}
140+
141+
@Override
142+
public int getNumDrainingRegionServers() {
143+
ServerManager serverManager = this.master.getServerManager();
144+
if (serverManager == null) {
145+
return 0;
146+
}
147+
return serverManager.getDrainingServersList().size();
148+
}
149+
132150
@Override
133151
public String getServerName() {
134152
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)