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/19 23:04:06 UTC

[1/3] hbase git commit: HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Repository: hbase
Updated Branches:
  refs/heads/branch-1 15ed2e86e -> e5618a667
  refs/heads/branch-2 cf1f63bf9 -> 37e5f5fb5
  refs/heads/master b4eacdabd -> e66a6603e


HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Signed-off-by: Andrew Purtell <ap...@apache.org>


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

Branch: refs/heads/master
Commit: e66a6603e36ecd67237ca16acd5e2de03f0d372d
Parents: b4eacda
Author: Ankit <ja...@salesforce.com>
Authored: Thu Jun 7 15:03:03 2018 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Jul 19 15:33:09 2018 -0700

----------------------------------------------------------------------
 .../regionserver/MetricsRegionServerSource.java |  6 ++++
 .../MetricsRegionServerWrapper.java             | 10 +++++++
 .../MetricsRegionServerSourceImpl.java          |  6 +++-
 .../MetricsRegionServerWrapperImpl.java         | 29 ++++++++++++++++++++
 .../MetricsRegionServerWrapperStub.java         | 10 +++++++
 5 files changed, 60 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e66a6603/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index 2ae26e1..77367e7 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -256,6 +256,9 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
   String READ_REQUEST_COUNT = "readRequestCount";
   String READ_REQUEST_COUNT_DESC =
       "Number of read requests with non-empty Results that this RegionServer has answered.";
+  String READ_REQUEST_RATE_PER_SECOND = "readRequestRatePerSecond";
+  String READ_REQUEST_RATE_DESC =
+      "Rate of answering the read requests by this region server per second.";
   String CP_REQUEST_COUNT = "cpRequestCount";
   String CP_REQUEST_COUNT_DESC =
       "Number of coprocessor service requests this region server has answered.";
@@ -265,6 +268,9 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
   String WRITE_REQUEST_COUNT = "writeRequestCount";
   String WRITE_REQUEST_COUNT_DESC =
       "Number of mutation requests this RegionServer has answered.";
+  String WRITE_REQUEST_RATE_PER_SECOND = "writeRequestRatePerSecond";
+  String WRITE_REQUEST_RATE_DESC =
+      "Rate of answering the mutation requests by this region server per second.";
   String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
   String CHECK_MUTATE_FAILED_COUNT_DESC =
       "Number of Check and Mutate calls that failed the checks.";

http://git-wip-us.apache.org/repos/asf/hbase/blob/e66a6603/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index 02c78c7..b3a8dac 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -141,6 +141,11 @@ public interface MetricsRegionServerWrapper {
   long getCpRequestsCount();
 
   /**
+   * Get the rate of read requests per second to regions hosted on this region server.
+   */
+  double getReadRequestsRatePerSecond();
+
+  /**
    * Get the number of filtered read requests to regions hosted on this region server.
    */
   long getFilteredReadRequestsCount();
@@ -151,6 +156,11 @@ public interface MetricsRegionServerWrapper {
   long getWriteRequestsCount();
 
   /**
+   * Get the rate of write requests per second to regions hosted on this region server.
+   */
+  double getWriteRequestsRatePerSecond();
+
+  /**
    * Get the number of CAS operations that failed.
    */
   long getCheckAndMutateChecksFailed();

http://git-wip-us.apache.org/repos/asf/hbase/blob/e66a6603/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index e6f2e93..7bed36c 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -546,7 +546,11 @@ public class MetricsRegionServerSourceImpl
             .addGauge(Interns.info(MOB_FILE_CACHE_COUNT, MOB_FILE_CACHE_COUNT_DESC),
                     rsWrap.getMobFileCacheCount())
             .addGauge(Interns.info(MOB_FILE_CACHE_HIT_PERCENT, MOB_FILE_CACHE_HIT_PERCENT_DESC),
-                    rsWrap.getMobFileCacheHitPercent());
+                    rsWrap.getMobFileCacheHitPercent())
+            .addGauge(Interns.info(READ_REQUEST_RATE_PER_SECOND, READ_REQUEST_RATE_DESC),
+                    rsWrap.getReadRequestsRatePerSecond())
+            .addGauge(Interns.info(WRITE_REQUEST_RATE_PER_SECOND, WRITE_REQUEST_RATE_DESC),
+                    rsWrap.getWriteRequestsRatePerSecond());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/e66a6603/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index c1c8f07..04a32c8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -74,9 +74,11 @@ class MetricsRegionServerWrapperImpl
   private volatile long numReferenceFiles = 0;
   private volatile double requestsPerSecond = 0.0;
   private volatile long readRequestsCount = 0;
+  private volatile double readRequestsRatePerSecond = 0;
   private volatile long cpRequestsCount = 0;
   private volatile long filteredReadRequestsCount = 0;
   private volatile long writeRequestsCount = 0;
+  private volatile double writeRequestsRatePerSecond = 0;
   private volatile long checkAndMutateChecksFailed = 0;
   private volatile long checkAndMutateChecksPassed = 0;
   private volatile long storefileIndexSize = 0;
@@ -525,6 +527,11 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
+  public double getReadRequestsRatePerSecond() {
+    return readRequestsRatePerSecond;
+  }
+
+  @Override
   public long getFilteredReadRequestsCount() {
     return filteredReadRequestsCount;
   }
@@ -535,6 +542,11 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
+  public double getWriteRequestsRatePerSecond() {
+    return writeRequestsRatePerSecond;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return regionServer.rpcServices.rpcGetRequestCount.sum();
   }
@@ -716,6 +728,8 @@ class MetricsRegionServerWrapperImpl
 
     private long lastRan = 0;
     private long lastRequestCount = 0;
+    private long lastReadRequestsCount = 0;
+    private long lastWriteRequestsCount = 0;
 
     @Override
     synchronized public void run() {
@@ -852,6 +866,21 @@ class MetricsRegionServerWrapperImpl
           requestsPerSecond = (currentRequestCount - lastRequestCount) /
               ((currentTime - lastRan) / 1000.0);
           lastRequestCount = currentRequestCount;
+
+          long intervalReadRequestsCount = tempReadRequestsCount - lastReadRequestsCount;
+          long intervalWriteRequestsCount = tempWriteRequestsCount - lastWriteRequestsCount;
+
+          double readRequestsRatePerMilliSecond = ((double)intervalReadRequestsCount/
+              (double)period);
+          double writeRequestsRatePerMilliSecond = ((double)intervalWriteRequestsCount/
+              (double)period);
+
+          readRequestsRatePerSecond = readRequestsRatePerMilliSecond * 1000.0;
+          writeRequestsRatePerSecond = writeRequestsRatePerMilliSecond * 1000.0;
+
+          lastReadRequestsCount = tempReadRequestsCount;
+          lastWriteRequestsCount = tempWriteRequestsCount;
+
         }
         lastRan = currentTime;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/e66a6603/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index 6537ec3..314d69c 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -101,6 +101,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getReadRequestsRatePerSecond() {
+    return 10.0;
+  }
+
+  @Override
   public long getTotalRowActionRequestCount() {
     return getReadRequestsCount() + getWriteRequestsCount();
   }
@@ -126,6 +131,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getWriteRequestsRatePerSecond() {
+    return 10.0;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return 521;
   }


[3/3] hbase git commit: HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Posted by ap...@apache.org.
HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Signed-off-by: Andrew Purtell <ap...@apache.org>


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

Branch: refs/heads/branch-2
Commit: 37e5f5fb5fd2a8b95c4fd269e4403db81afea161
Parents: cf1f63b
Author: Ankit <ja...@salesforce.com>
Authored: Thu Jun 7 15:03:03 2018 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Jul 19 15:41:53 2018 -0700

----------------------------------------------------------------------
 .../regionserver/MetricsRegionServerSource.java |  6 ++++
 .../MetricsRegionServerWrapper.java             | 10 +++++++
 .../MetricsRegionServerSourceImpl.java          |  6 +++-
 .../MetricsRegionServerWrapperImpl.java         | 29 ++++++++++++++++++++
 .../MetricsRegionServerWrapperStub.java         | 10 +++++++
 5 files changed, 60 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/37e5f5fb/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index 1a1535d..9c0a7b4 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -256,12 +256,18 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
   String READ_REQUEST_COUNT = "readRequestCount";
   String READ_REQUEST_COUNT_DESC =
       "Number of read requests with non-empty Results that this RegionServer has answered.";
+  String READ_REQUEST_RATE_PER_SECOND = "readRequestRatePerSecond";
+  String READ_REQUEST_RATE_DESC =
+      "Rate of answering the read requests by this region server per second.";
   String FILTERED_READ_REQUEST_COUNT = "filteredReadRequestCount";
   String FILTERED_READ_REQUEST_COUNT_DESC =
     "Number of filtered read requests this RegionServer has answered.";
   String WRITE_REQUEST_COUNT = "writeRequestCount";
   String WRITE_REQUEST_COUNT_DESC =
       "Number of mutation requests this RegionServer has answered.";
+  String WRITE_REQUEST_RATE_PER_SECOND = "writeRequestRatePerSecond";
+  String WRITE_REQUEST_RATE_DESC =
+      "Rate of answering the mutation requests by this region server per second.";
   String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
   String CHECK_MUTATE_FAILED_COUNT_DESC =
       "Number of Check and Mutate calls that failed the checks.";

http://git-wip-us.apache.org/repos/asf/hbase/blob/37e5f5fb/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index 83a8339..13a5d84 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -136,6 +136,11 @@ public interface MetricsRegionServerWrapper {
   long getReadRequestsCount();
 
   /**
+   * Get the rate of read requests per second to regions hosted on this region server.
+   */
+  double getReadRequestsRatePerSecond();
+
+  /**
    * Get the number of filtered read requests to regions hosted on this region server.
    */
   long getFilteredReadRequestsCount();
@@ -146,6 +151,11 @@ public interface MetricsRegionServerWrapper {
   long getWriteRequestsCount();
 
   /**
+   * Get the rate of write requests per second to regions hosted on this region server.
+   */
+  double getWriteRequestsRatePerSecond();
+
+  /**
    * Get the number of CAS operations that failed.
    */
   long getCheckAndMutateChecksFailed();

http://git-wip-us.apache.org/repos/asf/hbase/blob/37e5f5fb/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index 94b8389..88d9e06 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -544,7 +544,11 @@ public class MetricsRegionServerSourceImpl
             .addGauge(Interns.info(MOB_FILE_CACHE_COUNT, MOB_FILE_CACHE_COUNT_DESC),
                     rsWrap.getMobFileCacheCount())
             .addGauge(Interns.info(MOB_FILE_CACHE_HIT_PERCENT, MOB_FILE_CACHE_HIT_PERCENT_DESC),
-                    rsWrap.getMobFileCacheHitPercent());
+                    rsWrap.getMobFileCacheHitPercent())
+            .addGauge(Interns.info(READ_REQUEST_RATE_PER_SECOND, READ_REQUEST_RATE_DESC),
+                    rsWrap.getReadRequestsRatePerSecond())
+            .addGauge(Interns.info(WRITE_REQUEST_RATE_PER_SECOND, WRITE_REQUEST_RATE_DESC),
+                    rsWrap.getWriteRequestsRatePerSecond());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/37e5f5fb/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index 09929e1..371bdbc 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -74,8 +74,10 @@ class MetricsRegionServerWrapperImpl
   private volatile long numReferenceFiles = 0;
   private volatile double requestsPerSecond = 0.0;
   private volatile long readRequestsCount = 0;
+  private volatile double readRequestsRatePerSecond = 0;
   private volatile long filteredReadRequestsCount = 0;
   private volatile long writeRequestsCount = 0;
+  private volatile double writeRequestsRatePerSecond = 0;
   private volatile long checkAndMutateChecksFailed = 0;
   private volatile long checkAndMutateChecksPassed = 0;
   private volatile long storefileIndexSize = 0;
@@ -519,6 +521,11 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
+  public double getReadRequestsRatePerSecond() {
+    return readRequestsRatePerSecond;
+  }
+
+  @Override
   public long getFilteredReadRequestsCount() {
     return filteredReadRequestsCount;
   }
@@ -529,6 +536,11 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
+  public double getWriteRequestsRatePerSecond() {
+    return writeRequestsRatePerSecond;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return regionServer.rpcServices.rpcGetRequestCount.sum();
   }
@@ -710,6 +722,8 @@ class MetricsRegionServerWrapperImpl
 
     private long lastRan = 0;
     private long lastRequestCount = 0;
+    private long lastReadRequestsCount = 0;
+    private long lastWriteRequestsCount = 0;
 
     @Override
     synchronized public void run() {
@@ -845,6 +859,21 @@ class MetricsRegionServerWrapperImpl
           requestsPerSecond = (currentRequestCount - lastRequestCount) /
               ((currentTime - lastRan) / 1000.0);
           lastRequestCount = currentRequestCount;
+
+          long intervalReadRequestsCount = tempReadRequestsCount - lastReadRequestsCount;
+          long intervalWriteRequestsCount = tempWriteRequestsCount - lastWriteRequestsCount;
+
+          double readRequestsRatePerMilliSecond = ((double)intervalReadRequestsCount/
+              (double)period);
+          double writeRequestsRatePerMilliSecond = ((double)intervalWriteRequestsCount/
+              (double)period);
+
+          readRequestsRatePerSecond = readRequestsRatePerMilliSecond * 1000.0;
+          writeRequestsRatePerSecond = writeRequestsRatePerMilliSecond * 1000.0;
+
+          lastReadRequestsCount = tempReadRequestsCount;
+          lastWriteRequestsCount = tempWriteRequestsCount;
+
         }
         lastRan = currentTime;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/37e5f5fb/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index d56823e..d1162c9 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -101,6 +101,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getReadRequestsRatePerSecond() {
+    return 10.0;
+  }
+
+  @Override
   public long getTotalRowActionRequestCount() {
     return getReadRequestsCount() + getWriteRequestsCount();
   }
@@ -121,6 +126,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getWriteRequestsRatePerSecond() {
+    return 10.0;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return 521;
   }


[2/3] hbase git commit: HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Posted by ap...@apache.org.
HBASE-20672 New metrics ReadRequestRate and WriteRequestRate

Signed-off-by: Andrew Purtell <ap...@apache.org>


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

Branch: refs/heads/branch-1
Commit: e5618a6674163a5fddd51064c22e67a32fd4bee5
Parents: 15ed2e8
Author: Ankit <ja...@salesforce.com>
Authored: Thu Jun 7 15:03:03 2018 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Jul 19 15:36:01 2018 -0700

----------------------------------------------------------------------
 .../regionserver/MetricsRegionServerSource.java |  6 ++++
 .../MetricsRegionServerWrapper.java             | 10 +++++++
 .../MetricsRegionServerSourceImpl.java          |  4 +++
 .../MetricsRegionServerWrapperImpl.java         | 29 ++++++++++++++++++++
 .../MetricsRegionServerWrapperStub.java         | 10 +++++++
 5 files changed, 59 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e5618a66/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index b72deb8..affd267 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -253,6 +253,12 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
   String WRITE_REQUEST_COUNT = "writeRequestCount";
   String WRITE_REQUEST_COUNT_DESC =
       "Number of mutation requests this region server has answered.";
+  String READ_REQUEST_RATE = "readRequestRate";
+  String READ_REQUEST_RATE_DESC =
+      "Rate of answering the read requests by this region server per second.";
+  String WRITE_REQUEST_RATE = "writeRequestRate";
+  String WRITE_REQUEST_RATE_DESC =
+      "Rate of answering the mutation requests by this region server per second.";
   String CHECK_MUTATE_FAILED_COUNT = "checkMutateFailedCount";
   String CHECK_MUTATE_FAILED_COUNT_DESC =
       "Number of Check and Mutate calls that failed the checks.";

http://git-wip-us.apache.org/repos/asf/hbase/blob/e5618a66/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index 3344dce..5cbdc64 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -133,6 +133,16 @@ public interface MetricsRegionServerWrapper {
   long getWriteRequestsCount();
 
   /**
+   * Get the rate of read requests per second to regions hosted on this region server.
+   */
+  double getReadRequestsRate();
+
+  /**
+   * Get the rate of write requests per second to regions hosted on this region server.
+   */
+  double getWriteRequestsRate();
+
+  /**
    * Get the number of CAS operations that failed.
    */
   long getCheckAndMutateChecksFailed();

http://git-wip-us.apache.org/repos/asf/hbase/blob/e5618a66/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index 208188e..8833026 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -352,6 +352,10 @@ public class MetricsRegionServerSourceImpl
           .addGauge(Interns.info(RS_START_TIME_NAME, RS_START_TIME_DESC),
               rsWrap.getStartCode())
           .addGauge(Interns.info(AVERAGE_REGION_SIZE, AVERAGE_REGION_SIZE_DESC), rsWrap.getAverageRegionSize())
+          .addGauge(Interns.info(READ_REQUEST_RATE, READ_REQUEST_RATE_DESC),
+              rsWrap.getReadRequestsRate())
+          .addGauge(Interns.info(WRITE_REQUEST_RATE, WRITE_REQUEST_RATE_DESC),
+              rsWrap.getWriteRequestsRate())
           .addCounter(Interns.info(TOTAL_REQUEST_COUNT, TOTAL_REQUEST_COUNT_DESC),
               rsWrap.getTotalRequestCount())
           .addCounter(Interns.info(TOTAL_ROW_ACTION_REQUEST_COUNT, TOTAL_ROW_ACTION_REQUEST_COUNT_DESC),

http://git-wip-us.apache.org/repos/asf/hbase/blob/e5618a66/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index 9ba6cc0..cb2e2d7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -65,6 +65,8 @@ class MetricsRegionServerWrapperImpl
   private volatile double requestsPerSecond = 0.0;
   private volatile long readRequestsCount = 0;
   private volatile long writeRequestsCount = 0;
+  private volatile double readRequestsRate = 0;
+  private volatile double writeRequestsRate = 0;
   private volatile long checkAndMutateChecksFailed = 0;
   private volatile long checkAndMutateChecksPassed = 0;
   private volatile long storefileIndexSize = 0;
@@ -464,6 +466,16 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
+  public double getReadRequestsRate() {
+    return readRequestsRate;
+  }
+
+  @Override
+  public double getWriteRequestsRate() {
+    return writeRequestsRate;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return regionServer.rpcServices.rpcGetRequestCount.get();
   }
@@ -575,6 +587,8 @@ class MetricsRegionServerWrapperImpl
 
     private long lastRan = 0;
     private long lastRequestCount = 0;
+    private long lastReadRequestsCount = 0;
+    private long lastWriteRequestsCount = 0;
 
     @Override
     synchronized public void run() {
@@ -687,6 +701,21 @@ class MetricsRegionServerWrapperImpl
           requestsPerSecond =
               (currentRequestCount - lastRequestCount) / ((currentTime - lastRan) / 1000.0);
           lastRequestCount = currentRequestCount;
+
+          long intervalReadRequestsCount = tempReadRequestsCount - lastReadRequestsCount;
+          long intervalWriteRequestsCount = tempWriteRequestsCount - lastWriteRequestsCount;
+
+          double readRequestsRatePerMilliSecond = ((double)intervalReadRequestsCount/
+              (double)period);
+          double writeRequestsRatePerMilliSecond = ((double)intervalWriteRequestsCount/
+              (double)period);
+
+          readRequestsRate = readRequestsRatePerMilliSecond * 1000.0;
+          writeRequestsRate = writeRequestsRatePerMilliSecond * 1000.0;
+
+          lastReadRequestsCount = tempReadRequestsCount;
+          lastWriteRequestsCount = tempWriteRequestsCount;
+
         }
         lastRan = currentTime;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/e5618a66/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index 21d06cf..3be2604 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -101,6 +101,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getReadRequestsRate() {
+    return 10.0;
+  }
+
+  @Override
   public long getTotalRowActionRequestCount() {
     return getReadRequestsCount() + getWriteRequestsCount();
   }
@@ -116,6 +121,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   }
 
   @Override
+  public double getWriteRequestsRate() {
+    return 10.0;
+  }
+
+  @Override
   public long getRpcGetRequestsCount() {
     return 521;
   }