You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2021/03/04 07:23:42 UTC

[hbase] branch branch-2.2 updated: HBASE-25460 : Expose drainingServers as cluster metric (#2994) (#2995)

This is an automated email from the ASF dual-hosted git repository.

vjasani pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.2 by this push:
     new e5f32be  HBASE-25460 : Expose drainingServers as cluster metric (#2994) (#2995)
e5f32be is described below

commit e5f32beff3d6fa3f985f65e344447b9fcc50c915
Author: Rahul Kumar <rk...@gmail.com>
AuthorDate: Thu Mar 4 12:48:57 2021 +0530

    HBASE-25460 : Expose drainingServers as cluster metric (#2994) (#2995)
    
    Signed-off-by: Viraj Jasani <vj...@apache.org>
---
 .../hadoop/hbase/master/MetricsMasterSource.java       |  4 ++++
 .../hadoop/hbase/master/MetricsMasterWrapper.java      | 14 ++++++++++++++
 .../hadoop/hbase/master/MetricsMasterSourceImpl.java   |  4 ++++
 .../hadoop/hbase/master/MetricsMasterWrapperImpl.java  | 18 ++++++++++++++++++
 .../apache/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 dcfc600..3bf2fdd 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
@@ -55,8 +55,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";
@@ -73,6 +75,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 e6b2bc5..5e4297b 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
@@ -113,6 +113,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.
    */
   long getNumWALFiles();
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 0437b851..78a5069 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
@@ -106,6 +106,10 @@ public class MetricsMasterSourceImpl
           .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 6a9b572..53f1d40 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
@@ -130,6 +130,24 @@ public class MetricsMasterWrapperImpl implements MetricsMasterWrapper {
   }
 
   @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();
     if (serverName == null) {
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 6dc9b42..5116933 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,6 +139,7 @@ public class TestMasterMetrics {
     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);