You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/04/23 08:12:14 UTC

[23/50] [abbrv] hbase git commit: HBASE-20450 Provide metrics for number of total active, priority and replication rpc handlers

HBASE-20450 Provide metrics for number of total active, priority and replication rpc handlers

Signed-off-by: tedyu <yu...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/758f4296
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/758f4296
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/758f4296

Branch: refs/heads/HBASE-19064
Commit: 758f4296a4a8c99e1b8409b0b0e9319559074bb9
Parents: 273d252
Author: Nihal Jain <ni...@gmail.com>
Authored: Thu Apr 19 14:05:13 2018 +0530
Committer: tedyu <yu...@gmail.com>
Committed: Fri Apr 20 16:24:32 2018 -0700

----------------------------------------------------------------------
 .../hbase/ipc/MetricsHBaseServerSource.java     |  8 ++++++-
 .../hbase/ipc/MetricsHBaseServerWrapper.java    |  6 +++++
 .../hbase/ipc/MetricsHBaseServerSourceImpl.java |  8 +++++++
 .../hadoop/hbase/ipc/FifoRpcScheduler.java      | 16 ++++++++++++-
 .../ipc/MetricsHBaseServerWrapperImpl.java      | 24 ++++++++++++++++++++
 .../apache/hadoop/hbase/ipc/RpcScheduler.java   | 11 ++++++++-
 .../hadoop/hbase/ipc/SimpleRpcScheduler.java    | 20 +++++++++++++---
 .../hbase/ipc/DelegatingRpcScheduler.java       | 15 ++++++++++++
 .../ipc/MetricsHBaseServerWrapperStub.java      | 15 ++++++++++++
 .../apache/hadoop/hbase/ipc/TestRpcMetrics.java |  3 +++
 10 files changed, 120 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
index 0833751..d98837f 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
@@ -76,7 +76,13 @@ public interface MetricsHBaseServerSource extends ExceptionTrackingSource {
   String NUM_OPEN_CONNECTIONS_NAME = "numOpenConnections";
   String NUM_OPEN_CONNECTIONS_DESC = "Number of open connections.";
   String NUM_ACTIVE_HANDLER_NAME = "numActiveHandler";
-  String NUM_ACTIVE_HANDLER_DESC = "Number of active rpc handlers.";
+  String NUM_ACTIVE_HANDLER_DESC = "Total number of active rpc handlers.";
+  String NUM_ACTIVE_GENERAL_HANDLER_NAME = "numActiveGeneralHandler";
+  String NUM_ACTIVE_GENERAL_HANDLER_DESC = "Number of active general rpc handlers.";
+  String NUM_ACTIVE_PRIORITY_HANDLER_NAME = "numActivePriorityHandler";
+  String NUM_ACTIVE_PRIORITY_HANDLER_DESC = "Number of active priority rpc handlers.";
+  String NUM_ACTIVE_REPLICATION_HANDLER_NAME = "numActiveReplicationHandler";
+  String NUM_ACTIVE_REPLICATION_HANDLER_DESC = "Number of active replication rpc handlers.";
   String NUM_ACTIVE_WRITE_HANDLER_NAME = "numActiveWriteHandler";
   String NUM_ACTIVE_WRITE_HANDLER_DESC = "Number of active write rpc handlers.";
   String NUM_ACTIVE_READ_HANDLER_NAME = "numActiveReadHandler";

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
index c80d1a9..c66ec59 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
@@ -35,6 +35,12 @@ public interface MetricsHBaseServerWrapper {
 
   int getActiveRpcHandlerCount();
 
+  int getActiveGeneralRpcHandlerCount();
+
+  int getActivePriorityRpcHandlerCount();
+
+  int getActiveReplicationRpcHandlerCount();
+
   long getNumGeneralCallsDropped();
 
   long getNumLifoModeSwitches();

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
index ce8b1b4..6e8b81d 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
@@ -155,6 +155,14 @@ public class MetricsHBaseServerSourceImpl extends ExceptionTrackingSourceImpl
               NUM_OPEN_CONNECTIONS_DESC), wrapper.getNumOpenConnections())
           .addGauge(Interns.info(NUM_ACTIVE_HANDLER_NAME,
               NUM_ACTIVE_HANDLER_DESC), wrapper.getActiveRpcHandlerCount())
+          .addGauge(Interns.info(NUM_ACTIVE_GENERAL_HANDLER_NAME, NUM_ACTIVE_GENERAL_HANDLER_DESC),
+            wrapper.getActiveGeneralRpcHandlerCount())
+          .addGauge(
+            Interns.info(NUM_ACTIVE_PRIORITY_HANDLER_NAME, NUM_ACTIVE_PRIORITY_HANDLER_DESC),
+            wrapper.getActivePriorityRpcHandlerCount())
+          .addGauge(
+            Interns.info(NUM_ACTIVE_REPLICATION_HANDLER_NAME, NUM_ACTIVE_REPLICATION_HANDLER_DESC),
+            wrapper.getActiveReplicationRpcHandlerCount())
           .addCounter(Interns.info(NUM_GENERAL_CALLS_DROPPED_NAME,
               NUM_GENERAL_CALLS_DROPPED_DESC), wrapper.getNumGeneralCallsDropped())
           .addCounter(Interns.info(NUM_LIFO_MODE_SWITCHES_NAME,

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
index ce0f86d..bd8bdce 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
@@ -134,6 +134,21 @@ public class FifoRpcScheduler extends RpcScheduler {
   }
 
   @Override
+  public int getActiveGeneralRpcHandlerCount() {
+    return getActiveRpcHandlerCount();
+  }
+
+  @Override
+  public int getActivePriorityRpcHandlerCount() {
+    return 0;
+  }
+
+  @Override
+  public int getActiveReplicationRpcHandlerCount() {
+    return 0;
+  }
+
+  @Override
   public long getNumGeneralCallsDropped() {
     return 0;
   }
@@ -204,5 +219,4 @@ public class FifoRpcScheduler extends RpcScheduler {
 
     return callQueueInfo;
   }
-
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
index 8753ebb..e7341c5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
@@ -83,6 +83,30 @@ public class MetricsHBaseServerWrapperImpl implements MetricsHBaseServerWrapper
   }
 
   @Override
+  public int getActiveGeneralRpcHandlerCount() {
+    if (!isServerStarted() || this.server.getScheduler() == null) {
+      return 0;
+    }
+    return server.getScheduler().getActiveGeneralRpcHandlerCount();
+  }
+
+  @Override
+  public int getActivePriorityRpcHandlerCount() {
+    if (!isServerStarted() || this.server.getScheduler() == null) {
+      return 0;
+    }
+    return server.getScheduler().getActivePriorityRpcHandlerCount();
+  }
+
+  @Override
+  public int getActiveReplicationRpcHandlerCount() {
+    if (!isServerStarted() || this.server.getScheduler() == null) {
+      return 0;
+    }
+    return server.getScheduler().getActiveReplicationRpcHandlerCount();
+  }
+
+  @Override
   public long getNumGeneralCallsDropped() {
     if (!isServerStarted() || this.server.getScheduler() == null) {
       return 0;

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
index bd088a7..be54e54 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
@@ -77,9 +77,18 @@ public abstract class RpcScheduler {
   /** Retrieves length of the replication queue for metrics. */
   public abstract int getReplicationQueueLength();
 
-  /** Retrieves the number of active handler. */
+  /** Retrieves the total number of active handler. */
   public abstract int getActiveRpcHandlerCount();
 
+  /** Retrieves the number of active general handler. */
+  public abstract int getActiveGeneralRpcHandlerCount();
+
+  /** Retrieves the number of active priority handler. */
+  public abstract int getActivePriorityRpcHandlerCount();
+
+  /** Retrieves the number of active replication handler. */
+  public abstract int getActiveReplicationRpcHandlerCount();
+
   /**
    * If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
    * from general queue because RPC executor is under high load; returns 0 otherwise.

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
index 817163c..47c1498 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
@@ -185,9 +185,23 @@ public class SimpleRpcScheduler extends RpcScheduler implements ConfigurationObs
 
   @Override
   public int getActiveRpcHandlerCount() {
-    return callExecutor.getActiveHandlerCount() +
-           (priorityExecutor == null ? 0 : priorityExecutor.getActiveHandlerCount()) +
-           (replicationExecutor == null ? 0 : replicationExecutor.getActiveHandlerCount());
+    return callExecutor.getActiveHandlerCount() + getActivePriorityRpcHandlerCount()
+        + getActiveReplicationRpcHandlerCount();
+  }
+
+  @Override
+  public int getActiveGeneralRpcHandlerCount() {
+    return callExecutor.getActiveHandlerCount();
+  }
+
+  @Override
+  public int getActivePriorityRpcHandlerCount() {
+    return (priorityExecutor == null ? 0 : priorityExecutor.getActiveHandlerCount());
+  }
+
+  @Override
+  public int getActiveReplicationRpcHandlerCount() {
+    return (replicationExecutor == null ? 0 : replicationExecutor.getActiveHandlerCount());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.java
index 3dfae82..a90f4ba 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.java
@@ -60,6 +60,21 @@ public class DelegatingRpcScheduler extends RpcScheduler {
   }
 
   @Override
+  public int getActiveGeneralRpcHandlerCount() {
+    return delegate.getActiveGeneralRpcHandlerCount();
+  }
+
+  @Override
+  public int getActivePriorityRpcHandlerCount() {
+    return delegate.getActivePriorityRpcHandlerCount();
+  }
+
+  @Override
+  public int getActiveReplicationRpcHandlerCount() {
+    return delegate.getActiveReplicationRpcHandlerCount();
+  }
+
+  @Override
   public boolean dispatch(CallRunner task) throws IOException, InterruptedException {
     return delegate.dispatch(task);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
index 3b787a9..748ee3d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
@@ -50,6 +50,21 @@ public class MetricsHBaseServerWrapperStub implements MetricsHBaseServerWrapper{
   }
 
   @Override
+  public int getActiveGeneralRpcHandlerCount() {
+    return 201;
+  }
+
+  @Override
+  public int getActivePriorityRpcHandlerCount() {
+    return 202;
+  }
+
+  @Override
+  public int getActiveReplicationRpcHandlerCount() {
+    return 203;
+  }
+
+  @Override
   public long getNumGeneralCallsDropped() {
     return 3;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/758f4296/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
index 74827b9..2f99d2b 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java
@@ -74,6 +74,9 @@ public class TestRpcMetrics {
     HELPER.assertGauge("numCallsInPriorityQueue", 104, serverSource);
     HELPER.assertGauge("numOpenConnections", 105, serverSource);
     HELPER.assertGauge("numActiveHandler", 106, serverSource);
+    HELPER.assertGauge("numActiveGeneralHandler", 201, serverSource);
+    HELPER.assertGauge("numActivePriorityHandler", 202, serverSource);
+    HELPER.assertGauge("numActiveReplicationHandler", 203, serverSource);
     HELPER.assertGauge("numActiveWriteHandler", 50, serverSource);
     HELPER.assertGauge("numActiveReadHandler", 50, serverSource);
     HELPER.assertGauge("numActiveScanHandler", 6, serverSource);