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 2015/10/01 04:15:40 UTC

[1/4] hbase git commit: HBASE-14459 Add response and request size metrics

Repository: hbase
Updated Branches:
  refs/heads/0.98 4e1652542 -> 0bec6ea18
  refs/heads/branch-1 cca2ba4d9 -> d047c3787
  refs/heads/branch-1.2 54b64871f -> 26eea98a8
  refs/heads/master a46398494 -> 76463a36f


HBASE-14459 Add response and request size metrics

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/76463a36
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/76463a36
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/76463a36

Branch: refs/heads/master
Commit: 76463a36f5648f42cdcf64019a825c1e3f0c4fe1
Parents: a463984
Author: Sanjeev Srivatsa <ss...@fb.com>
Authored: Mon Sep 21 17:55:47 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Sep 30 18:22:48 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/ipc/MetricsHBaseServerSource.java      |  8 ++++++++
 .../hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java  | 12 ++++++++++++
 .../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java |  4 ++++
 .../java/org/apache/hadoop/hbase/ipc/RpcServer.java     |  5 ++++-
 .../org/apache/hadoop/hbase/ipc/TestRpcMetrics.java     |  5 +++++
 5 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/76463a36/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 482fdba..36bd643 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
@@ -38,6 +38,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
   String SENT_BYTES_DESC = "Number of bytes sent.";
   String RECEIVED_BYTES_NAME = "receivedBytes";
   String RECEIVED_BYTES_DESC = "Number of bytes received.";
+  String REQUEST_SIZE_NAME = "requestSize";
+  String REQUEST_SIZE_DESC = "Request size in bytes.";
+  String RESPONSE_SIZE_NAME = "responseSize";
+  String RESPONSE_SIZE_DESC = "Response size in bytes.";
   String QUEUE_CALL_TIME_NAME = "queueCallTime";
   String QUEUE_CALL_TIME_DESC = "Queue Call Time.";
   String PROCESS_CALL_TIME_NAME = "processCallTime";
@@ -92,6 +96,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
 
   void receivedBytes(int count);
 
+  void sentResponse(long count);
+
+  void receivedRequest(long count);
+
   void dequeuedCall(int qTime);
 
   void processedCall(int processingTime);

http://git-wip-us.apache.org/repos/asf/hbase/blob/76463a36/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 dadf9de..fe84733 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
@@ -51,6 +51,8 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   private MutableHistogram queueCallTime;
   private MutableHistogram processCallTime;
   private MutableHistogram totalCallTime;
+  private MutableHistogram requestSize;
+  private MutableHistogram responseSize;
 
   public MetricsHBaseServerSourceImpl(String metricsName,
                                       String metricsDescription,
@@ -93,6 +95,10 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
         PROCESS_CALL_TIME_DESC);
     this.totalCallTime = this.getMetricsRegistry().newHistogram(TOTAL_CALL_TIME_NAME,
         TOTAL_CALL_TIME_DESC);
+    this.requestSize = this.getMetricsRegistry().newHistogram(REQUEST_SIZE_NAME,
+        REQUEST_SIZE_DESC);
+    this.responseSize = this.getMetricsRegistry().newHistogram(RESPONSE_SIZE_NAME,
+              RESPONSE_SIZE_DESC);
   }
 
   @Override
@@ -161,6 +167,12 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   }
 
   @Override
+  public void sentResponse(long count) { this.responseSize.add(count); }
+
+  @Override
+  public void receivedRequest(long count) { this.requestSize.add(count); }
+
+  @Override
   public void dequeuedCall(int qTime) {
     queueCallTime.add(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/76463a36/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
index 3ca50ad..ceef0df 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
@@ -61,6 +61,10 @@ public class MetricsHBaseServer {
     source.receivedBytes(count);
   }
 
+  void sentResponse(long count) { source.sentResponse(count); }
+
+  void receivedRequest(long count) { source.receivedRequest(count); }
+
   void dequeuedCall(int qTime) {
     source.dequeuedCall(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/76463a36/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 16bea72..6d9d6cd 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -2145,10 +2145,13 @@ public class RpcServer implements RpcServerInterface {
             " processingTime: " + processingTime +
             " totalTime: " + totalTime);
       }
+      long requestSize = param.getSerializedSize();
+      long responseSize = result.getSerializedSize();
       metrics.dequeuedCall(qTime);
       metrics.processedCall(processingTime);
       metrics.totalCall(totalTime);
-      long responseSize = result.getSerializedSize();
+      metrics.receivedRequest(requestSize);
+      metrics.sentResponse(responseSize);
       // log any RPC responses that are slower than the configured warn
       // response time or larger than configured warning size
       boolean tooSlow = (processingTime > warnResponseTime && warnResponseTime > -1);

http://git-wip-us.apache.org/repos/asf/hbase/blob/76463a36/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 6bb97fd..9f1b63a 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
@@ -119,6 +119,11 @@ public class TestRpcMetrics {
     HELPER.assertCounter("sentBytes", 309, serverSource);
     HELPER.assertCounter("receivedBytes", 208, serverSource);
 
+    mrpc.receivedRequest(105);
+    mrpc.sentResponse(106);
+    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);
+    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);
+
     mrpc.exception(null);
     HELPER.assertCounter("exceptions", 1, serverSource);
 


[4/4] hbase git commit: HBASE-14459 Add response and request size metrics

Posted by ap...@apache.org.
HBASE-14459 Add response and request size metrics

Signed-off-by: Andrew Purtell <ap...@apache.org>
Amending-Author: 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/0bec6ea1
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0bec6ea1
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0bec6ea1

Branch: refs/heads/0.98
Commit: 0bec6ea18e8c9be995bb61291556fc86dea5726d
Parents: 4e16525
Author: Sanjeev Srivatsa <ss...@fb.com>
Authored: Mon Sep 21 17:55:47 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Sep 30 18:32:18 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/ipc/MetricsHBaseServerSource.java  |  8 ++++++++
 .../hbase/ipc/MetricsHBaseServerSourceImpl.java     | 16 ++++++++++++++++
 .../hbase/ipc/MetricsHBaseServerSourceImpl.java     | 16 ++++++++++++++++
 .../apache/hadoop/hbase/ipc/MetricsHBaseServer.java |  4 ++++
 .../java/org/apache/hadoop/hbase/ipc/RpcServer.java |  5 ++++-
 .../org/apache/hadoop/hbase/ipc/TestRpcMetrics.java |  5 +++++
 6 files changed, 53 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/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 482fdba..36bd643 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
@@ -38,6 +38,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
   String SENT_BYTES_DESC = "Number of bytes sent.";
   String RECEIVED_BYTES_NAME = "receivedBytes";
   String RECEIVED_BYTES_DESC = "Number of bytes received.";
+  String REQUEST_SIZE_NAME = "requestSize";
+  String REQUEST_SIZE_DESC = "Request size in bytes.";
+  String RESPONSE_SIZE_NAME = "responseSize";
+  String RESPONSE_SIZE_DESC = "Response size in bytes.";
   String QUEUE_CALL_TIME_NAME = "queueCallTime";
   String QUEUE_CALL_TIME_DESC = "Queue Call Time.";
   String PROCESS_CALL_TIME_NAME = "processCallTime";
@@ -92,6 +96,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
 
   void receivedBytes(int count);
 
+  void sentResponse(long count);
+
+  void receivedRequest(long count);
+
   void dequeuedCall(int qTime);
 
   void processedCall(int processingTime);

http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
index 0dce85c..d2d48c8 100644
--- a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
+++ b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java
@@ -47,6 +47,8 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   private MetricMutableHistogram queueCallTime;
   private MetricMutableHistogram processCallTime;
   private MetricMutableHistogram totalCallTime;
+  private MetricMutableHistogram requestSize;
+  private MetricMutableHistogram responseSize;
 
   public MetricsHBaseServerSourceImpl(String metricsName,
                                       String metricsDescription,
@@ -89,6 +91,10 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
         PROCESS_CALL_TIME_DESC);
     this.totalCallTime = this.getMetricsRegistry().newHistogram(TOTAL_CALL_TIME_NAME,
         TOTAL_CALL_TIME_DESC);
+    this.requestSize = this.getMetricsRegistry().newHistogram(REQUEST_SIZE_NAME,
+        REQUEST_SIZE_DESC);
+    this.responseSize = this.getMetricsRegistry().newHistogram(RESPONSE_SIZE_NAME,
+        RESPONSE_SIZE_DESC);
   }
 
   @Override
@@ -157,6 +163,16 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   }
 
   @Override
+  public void sentResponse(long count) {
+    this.responseSize.add(count);
+  }
+
+  @Override
+  public void receivedRequest(long count) {
+    this.requestSize.add(count);
+  }
+
+  @Override
   public void dequeuedCall(int qTime) {
     queueCallTime.add(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/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 0e1a5c9..1ec2aad 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
@@ -50,6 +50,8 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   private MutableHistogram queueCallTime;
   private MutableHistogram processCallTime;
   private MutableHistogram totalCallTime;
+  private MutableHistogram requestSize;
+  private MutableHistogram responseSize;
 
   public MetricsHBaseServerSourceImpl(String metricsName,
                                       String metricsDescription,
@@ -92,6 +94,10 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
         PROCESS_CALL_TIME_DESC);
     this.totalCallTime = this.getMetricsRegistry().newHistogram(TOTAL_CALL_TIME_NAME,
         TOTAL_CALL_TIME_DESC);
+    this.requestSize = this.getMetricsRegistry().newHistogram(REQUEST_SIZE_NAME,
+        REQUEST_SIZE_DESC);
+    this.responseSize = this.getMetricsRegistry().newHistogram(RESPONSE_SIZE_NAME,
+        RESPONSE_SIZE_DESC);
   }
 
   @Override
@@ -160,6 +166,16 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   }
 
   @Override
+  public void sentResponse(long count) {
+    this.responseSize.add(count);
+  }
+
+  @Override
+  public void receivedRequest(long count) {
+    this.requestSize.add(count);
+  }
+
+  @Override
   public void dequeuedCall(int qTime) {
     queueCallTime.add(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
index 3ca50ad..ceef0df 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
@@ -61,6 +61,10 @@ public class MetricsHBaseServer {
     source.receivedBytes(count);
   }
 
+  void sentResponse(long count) { source.sentResponse(count); }
+
+  void receivedRequest(long count) { source.receivedRequest(count); }
+
   void dequeuedCall(int qTime) {
     source.dequeuedCall(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 8125ad4..c37411b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -2118,10 +2118,13 @@ public class RpcServer implements RpcServerInterface {
             " processingTime: " + processingTime +
             " totalTime: " + totalTime);
       }
+      long requestSize = param.getSerializedSize();
+      long responseSize = result.getSerializedSize();
       metrics.dequeuedCall(qTime);
       metrics.processedCall(processingTime);
       metrics.totalCall(totalTime);
-      long responseSize = result.getSerializedSize();
+      metrics.receivedRequest(requestSize);
+      metrics.sentResponse(responseSize);
       // log any RPC responses that are slower than the configured warn
       // response time or larger than configured warning size
       boolean tooSlow = (processingTime > warnResponseTime && warnResponseTime > -1);

http://git-wip-us.apache.org/repos/asf/hbase/blob/0bec6ea1/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 5cbed94..e81f47a 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
@@ -117,6 +117,11 @@ public class TestRpcMetrics {
     HELPER.assertCounter("sentBytes", 309, serverSource);
     HELPER.assertCounter("receivedBytes", 208, serverSource);
 
+    mrpc.receivedRequest(105);
+    mrpc.sentResponse(106);
+    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);
+    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);
+
     mrpc.exception(null);
     HELPER.assertCounter("exceptions", 1, serverSource);
 


[3/4] hbase git commit: HBASE-14459 Add response and request size metrics

Posted by ap...@apache.org.
HBASE-14459 Add response and request size metrics

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/26eea98a
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/26eea98a
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/26eea98a

Branch: refs/heads/branch-1.2
Commit: 26eea98a8212654f463faabc06825fa067496d41
Parents: 54b6487
Author: Sanjeev Srivatsa <ss...@fb.com>
Authored: Mon Sep 21 17:55:47 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Sep 30 18:23:22 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/ipc/MetricsHBaseServerSource.java      |  8 ++++++++
 .../hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java  | 12 ++++++++++++
 .../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java |  4 ++++
 .../java/org/apache/hadoop/hbase/ipc/RpcServer.java     |  5 ++++-
 .../org/apache/hadoop/hbase/ipc/TestRpcMetrics.java     |  5 +++++
 5 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/26eea98a/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 482fdba..36bd643 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
@@ -38,6 +38,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
   String SENT_BYTES_DESC = "Number of bytes sent.";
   String RECEIVED_BYTES_NAME = "receivedBytes";
   String RECEIVED_BYTES_DESC = "Number of bytes received.";
+  String REQUEST_SIZE_NAME = "requestSize";
+  String REQUEST_SIZE_DESC = "Request size in bytes.";
+  String RESPONSE_SIZE_NAME = "responseSize";
+  String RESPONSE_SIZE_DESC = "Response size in bytes.";
   String QUEUE_CALL_TIME_NAME = "queueCallTime";
   String QUEUE_CALL_TIME_DESC = "Queue Call Time.";
   String PROCESS_CALL_TIME_NAME = "processCallTime";
@@ -92,6 +96,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
 
   void receivedBytes(int count);
 
+  void sentResponse(long count);
+
+  void receivedRequest(long count);
+
   void dequeuedCall(int qTime);
 
   void processedCall(int processingTime);

http://git-wip-us.apache.org/repos/asf/hbase/blob/26eea98a/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 dadf9de..fe84733 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
@@ -51,6 +51,8 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   private MutableHistogram queueCallTime;
   private MutableHistogram processCallTime;
   private MutableHistogram totalCallTime;
+  private MutableHistogram requestSize;
+  private MutableHistogram responseSize;
 
   public MetricsHBaseServerSourceImpl(String metricsName,
                                       String metricsDescription,
@@ -93,6 +95,10 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
         PROCESS_CALL_TIME_DESC);
     this.totalCallTime = this.getMetricsRegistry().newHistogram(TOTAL_CALL_TIME_NAME,
         TOTAL_CALL_TIME_DESC);
+    this.requestSize = this.getMetricsRegistry().newHistogram(REQUEST_SIZE_NAME,
+        REQUEST_SIZE_DESC);
+    this.responseSize = this.getMetricsRegistry().newHistogram(RESPONSE_SIZE_NAME,
+              RESPONSE_SIZE_DESC);
   }
 
   @Override
@@ -161,6 +167,12 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   }
 
   @Override
+  public void sentResponse(long count) { this.responseSize.add(count); }
+
+  @Override
+  public void receivedRequest(long count) { this.requestSize.add(count); }
+
+  @Override
   public void dequeuedCall(int qTime) {
     queueCallTime.add(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/26eea98a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
index 3ca50ad..ceef0df 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
@@ -61,6 +61,10 @@ public class MetricsHBaseServer {
     source.receivedBytes(count);
   }
 
+  void sentResponse(long count) { source.sentResponse(count); }
+
+  void receivedRequest(long count) { source.receivedRequest(count); }
+
   void dequeuedCall(int qTime) {
     source.dequeuedCall(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/26eea98a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 7c239f5..40e2534 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -2129,10 +2129,13 @@ public class RpcServer implements RpcServerInterface {
             " processingTime: " + processingTime +
             " totalTime: " + totalTime);
       }
+      long requestSize = param.getSerializedSize();
+      long responseSize = result.getSerializedSize();
       metrics.dequeuedCall(qTime);
       metrics.processedCall(processingTime);
       metrics.totalCall(totalTime);
-      long responseSize = result.getSerializedSize();
+      metrics.receivedRequest(requestSize);
+      metrics.sentResponse(responseSize);
       // log any RPC responses that are slower than the configured warn
       // response time or larger than configured warning size
       boolean tooSlow = (processingTime > warnResponseTime && warnResponseTime > -1);

http://git-wip-us.apache.org/repos/asf/hbase/blob/26eea98a/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 e33a0d7..52518f8 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
@@ -118,6 +118,11 @@ public class TestRpcMetrics {
     HELPER.assertCounter("sentBytes", 309, serverSource);
     HELPER.assertCounter("receivedBytes", 208, serverSource);
 
+    mrpc.receivedRequest(105);
+    mrpc.sentResponse(106);
+    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);
+    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);
+
     mrpc.exception(null);
     HELPER.assertCounter("exceptions", 1, serverSource);
 


[2/4] hbase git commit: HBASE-14459 Add response and request size metrics

Posted by ap...@apache.org.
HBASE-14459 Add response and request size metrics

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/d047c378
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d047c378
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d047c378

Branch: refs/heads/branch-1
Commit: d047c378719eeb352e354c24d88ea6e94125af7f
Parents: cca2ba4
Author: Sanjeev Srivatsa <ss...@fb.com>
Authored: Mon Sep 21 17:55:47 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Sep 30 18:23:17 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hbase/ipc/MetricsHBaseServerSource.java      |  8 ++++++++
 .../hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.java  | 12 ++++++++++++
 .../org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java |  4 ++++
 .../java/org/apache/hadoop/hbase/ipc/RpcServer.java     |  5 ++++-
 .../org/apache/hadoop/hbase/ipc/TestRpcMetrics.java     |  5 +++++
 5 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/d047c378/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 482fdba..36bd643 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
@@ -38,6 +38,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
   String SENT_BYTES_DESC = "Number of bytes sent.";
   String RECEIVED_BYTES_NAME = "receivedBytes";
   String RECEIVED_BYTES_DESC = "Number of bytes received.";
+  String REQUEST_SIZE_NAME = "requestSize";
+  String REQUEST_SIZE_DESC = "Request size in bytes.";
+  String RESPONSE_SIZE_NAME = "responseSize";
+  String RESPONSE_SIZE_DESC = "Response size in bytes.";
   String QUEUE_CALL_TIME_NAME = "queueCallTime";
   String QUEUE_CALL_TIME_DESC = "Queue Call Time.";
   String PROCESS_CALL_TIME_NAME = "processCallTime";
@@ -92,6 +96,10 @@ public interface MetricsHBaseServerSource extends BaseSource {
 
   void receivedBytes(int count);
 
+  void sentResponse(long count);
+
+  void receivedRequest(long count);
+
   void dequeuedCall(int qTime);
 
   void processedCall(int processingTime);

http://git-wip-us.apache.org/repos/asf/hbase/blob/d047c378/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 dadf9de..fe84733 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
@@ -51,6 +51,8 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   private MutableHistogram queueCallTime;
   private MutableHistogram processCallTime;
   private MutableHistogram totalCallTime;
+  private MutableHistogram requestSize;
+  private MutableHistogram responseSize;
 
   public MetricsHBaseServerSourceImpl(String metricsName,
                                       String metricsDescription,
@@ -93,6 +95,10 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
         PROCESS_CALL_TIME_DESC);
     this.totalCallTime = this.getMetricsRegistry().newHistogram(TOTAL_CALL_TIME_NAME,
         TOTAL_CALL_TIME_DESC);
+    this.requestSize = this.getMetricsRegistry().newHistogram(REQUEST_SIZE_NAME,
+        REQUEST_SIZE_DESC);
+    this.responseSize = this.getMetricsRegistry().newHistogram(RESPONSE_SIZE_NAME,
+              RESPONSE_SIZE_DESC);
   }
 
   @Override
@@ -161,6 +167,12 @@ public class MetricsHBaseServerSourceImpl extends BaseSourceImpl
   }
 
   @Override
+  public void sentResponse(long count) { this.responseSize.add(count); }
+
+  @Override
+  public void receivedRequest(long count) { this.requestSize.add(count); }
+
+  @Override
   public void dequeuedCall(int qTime) {
     queueCallTime.add(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/d047c378/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
index 3ca50ad..ceef0df 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServer.java
@@ -61,6 +61,10 @@ public class MetricsHBaseServer {
     source.receivedBytes(count);
   }
 
+  void sentResponse(long count) { source.sentResponse(count); }
+
+  void receivedRequest(long count) { source.receivedRequest(count); }
+
   void dequeuedCall(int qTime) {
     source.dequeuedCall(qTime);
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/d047c378/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 7c239f5..40e2534 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -2129,10 +2129,13 @@ public class RpcServer implements RpcServerInterface {
             " processingTime: " + processingTime +
             " totalTime: " + totalTime);
       }
+      long requestSize = param.getSerializedSize();
+      long responseSize = result.getSerializedSize();
       metrics.dequeuedCall(qTime);
       metrics.processedCall(processingTime);
       metrics.totalCall(totalTime);
-      long responseSize = result.getSerializedSize();
+      metrics.receivedRequest(requestSize);
+      metrics.sentResponse(responseSize);
       // log any RPC responses that are slower than the configured warn
       // response time or larger than configured warning size
       boolean tooSlow = (processingTime > warnResponseTime && warnResponseTime > -1);

http://git-wip-us.apache.org/repos/asf/hbase/blob/d047c378/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 e33a0d7..52518f8 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
@@ -118,6 +118,11 @@ public class TestRpcMetrics {
     HELPER.assertCounter("sentBytes", 309, serverSource);
     HELPER.assertCounter("receivedBytes", 208, serverSource);
 
+    mrpc.receivedRequest(105);
+    mrpc.sentResponse(106);
+    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);
+    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);
+
     mrpc.exception(null);
     HELPER.assertCounter("exceptions", 1, serverSource);