From b5cfb0f1e10c5faed925902ebfaae23f685cf75a Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Fri, 26 Feb 2021 12:50:31 +0530 Subject: [PATCH 1/3] HBASE-25460 : Expose drainingServers as cluster metric --- .../hbase/master/MetricsMasterSource.java | 4 ++++ .../hbase/master/MetricsMasterWrapper.java | 14 ++++++++++++++ .../hbase/master/MetricsMasterSourceImpl.java | 4 ++++ .../hbase/master/MetricsMasterWrapperImpl.java | 18 ++++++++++++++++++ .../hadoop/hbase/master/TestMasterMetrics.java | 1 + 5 files changed, 41 insertions(+) diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java index d187bb11b7f8..9ed5a3b95f29 100644 --- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java +++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java @@ -53,8 +53,10 @@ public interface MetricsMasterSource extends BaseSource { String AVERAGE_LOAD_NAME = "averageLoad"; String LIVE_REGION_SERVERS_NAME = "liveRegionServers"; String DEAD_REGION_SERVERS_NAME = "deadRegionServers"; + String DRAINING_REGION_SERVER_NAME = "draininigRegionServers"; String NUM_REGION_SERVERS_NAME = "numRegionServers"; String NUM_DEAD_REGION_SERVERS_NAME = "numDeadRegionServers"; + String NUM_DRAINING_REGION_SERVERS_NAME = "numDrainingRegionServers"; String ZOOKEEPER_QUORUM_NAME = "zookeeperQuorum"; String SERVER_NAME_NAME = "serverName"; String CLUSTER_ID_NAME = "clusterId"; @@ -71,6 +73,8 @@ public interface MetricsMasterSource extends BaseSource { String NUMBER_OF_REGION_SERVERS_DESC = "Number of RegionServers"; String DEAD_REGION_SERVERS_DESC = "Names of dead RegionServers"; String NUMBER_OF_DEAD_REGION_SERVERS_DESC = "Number of dead RegionServers"; + String DRAINING_REGION_SERVER_DESC = "Names of draining RegionServers"; + String NUMBER_OF_DRAINING_REGION_SERVERS_DESC = "Number of draining RegionServers"; String ZOOKEEPER_QUORUM_DESC = "ZooKeeper Quorum"; String SERVER_NAME_DESC = "Server Name"; String CLUSTER_ID_DESC = "Cluster Id"; diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java index 80e08920df99..6c970312f2ec 100644 --- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java +++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java @@ -110,6 +110,20 @@ public interface MetricsMasterWrapper { */ int getNumDeadRegionServers(); + /** + * Get the draining region servers + * + * @return Draining region server + */ + String getDrainingRegionServers(); + + /** + * Get the number of draining region servers + * + * @return number of draining region servers + */ + int getNumDrainingRegionServers(); + /** * Get the number of master WAL files. */ diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java index 48163a3be96b..d728c56a69cc 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java @@ -105,6 +105,10 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) { .addGauge(Interns.info(NUM_DEAD_REGION_SERVERS_NAME, NUMBER_OF_DEAD_REGION_SERVERS_DESC), masterWrapper.getNumDeadRegionServers()) + .tag(Interns.info(DRAINING_REGION_SERVER_NAME, DRAINING_REGION_SERVER_DESC), + masterWrapper.getDrainingRegionServers()) + .addGauge(Interns.info(NUM_DRAINING_REGION_SERVERS_NAME, NUMBER_OF_REGION_SERVERS_DESC), + masterWrapper.getNumDrainingRegionServers()) .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC), masterWrapper.getZookeeperQuorum()) .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), masterWrapper.getServerName()) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java index d13fb76ba8d0..31726cfe9104 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java @@ -129,6 +129,24 @@ public int getNumDeadRegionServers() { return serverManager.getDeadServers().size(); } + @Override + public String getDrainingRegionServers() { + ServerManager serverManager = this.master.getServerManager(); + if (serverManager == null) { + return ""; + } + return StringUtils.join(serverManager.getDrainingServersList() , ";"); + } + + @Override + public int getNumDrainingRegionServers() { + ServerManager serverManager = this.master.getServerManager(); + if (serverManager == null) { + return 0; + } + return serverManager.getDrainingServersList().size(); + } + @Override public String getServerName() { ServerName serverName = master.getServerName(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java index 04cfc6502acb..bfcd426deb80 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java @@ -132,6 +132,7 @@ public void testDefaultMasterMetrics() throws Exception { metricsHelper.assertGauge( "numRegionServers",1 + (tablesOnMaster? 1: 0), masterSource); metricsHelper.assertGauge( "averageLoad", 1 + (tablesOnMaster? 0: 1), masterSource); metricsHelper.assertGauge( "numDeadRegionServers", 0, masterSource); + metricsHelper.assertGauge( "numDrainingRegionServers", 0, masterSource); metricsHelper.assertGauge("masterStartTime", master.getMasterStartTime(), masterSource); metricsHelper.assertGauge("masterActiveTime", master.getMasterActiveTime(), masterSource); From 1244dc71bd39cc0e37fadecf17045d8d71dbef90 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Tue, 2 Mar 2021 18:03:07 +0530 Subject: [PATCH 2/3] fix indent --- .../hadoop/hbase/master/MetricsMasterWrapperImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java index 60165f58169f..1bc5dd41636f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java @@ -145,10 +145,10 @@ public String getDrainingRegionServers() { @Override public int getNumDrainingRegionServers() { ServerManager serverManager = this.master.getServerManager(); - if (serverManager == null) { - return 0; - } - return serverManager.getDrainingServersList().size(); + if (serverManager == null) { + return 0; + } + return serverManager.getDrainingServersList().size(); } @Override From 2efa6fcc2e4b3b523880a94f499a19db923d3ca7 Mon Sep 17 00:00:00 2001 From: "rahul.kumar" Date: Tue, 2 Mar 2021 18:19:03 +0530 Subject: [PATCH 3/3] fix indent --- .../java/org/apache/hadoop/hbase/master/TestMasterMetrics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java index 92481261bdf9..511693338722 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java @@ -139,7 +139,7 @@ public void testDefaultMasterMetrics() throws Exception { metricsHelper.assertGauge( "numRegionServers",1 + (tablesOnMaster? 1: 0), masterSource); metricsHelper.assertGauge( "averageLoad", 1 + (tablesOnMaster? 0: 1), masterSource); metricsHelper.assertGauge( "numDeadRegionServers", 0, masterSource); - metricsHelper.assertGauge( "numDrainingRegionServers", 0, masterSource); + metricsHelper.assertGauge("numDrainingRegionServers", 0, masterSource); metricsHelper.assertGauge("masterStartTime", master.getMasterStartTime(), masterSource); metricsHelper.assertGauge("masterActiveTime", master.getMasterActiveTime(), masterSource);