You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2018/07/02 18:37:49 UTC
hbase git commit: HBASE-20450 Provide metrics for number of total
active, priority and replication rpc handlers
Repository: hbase
Updated Branches:
refs/heads/branch-1 cc8e1cc39 -> f94ad9d78
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/f94ad9d7
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f94ad9d7
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f94ad9d7
Branch: refs/heads/branch-1
Commit: f94ad9d78fdcd287f39657d00f14673862802564
Parents: cc8e1cc
Author: Nihal Jain <ni...@gmail.com>
Authored: Thu Apr 19 14:05:13 2018 +0530
Committer: Andrew Purtell <ap...@apache.org>
Committed: Mon Jul 2 11:19:19 2018 -0700
----------------------------------------------------------------------
.../hbase/ipc/MetricsHBaseServerSource.java | 8 ++++++-
.../hbase/ipc/MetricsHBaseServerWrapper.java | 6 +++++
.../hbase/ipc/MetricsHBaseServerSourceImpl.java | 8 +++++++
.../hadoop/hbase/ipc/FifoRpcScheduler.java | 15 ++++++++++++
.../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(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f94ad9d7/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 6128c8f..21f4572 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
@@ -72,7 +72,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/f94ad9d7/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 b272cd0..1a1a966 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
@@ -32,6 +32,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/f94ad9d7/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 eee641a..97cc31a 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/f94ad9d7/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 a9b6fd1..ab24180 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
@@ -110,6 +110,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;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/f94ad9d7/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 7384787..6ba7ea2 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
@@ -80,6 +80,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/f94ad9d7/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 fff8373..c3389f3 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
@@ -74,9 +74,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/f94ad9d7/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 8fc0023..dbe4667 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
@@ -175,9 +175,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/f94ad9d7/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 3c8f114..36fb015 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/f94ad9d7/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/f94ad9d7/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 ffcc992..66afe25 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
@@ -69,6 +69,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);