You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/08/25 08:48:12 UTC

svn commit: r1377224 - in /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase: ./ ipc/ metrics/ regionserver/metrics/

Author: mbautin
Date: Sat Aug 25 06:48:12 2012
New Revision: 1377224

URL: http://svn.apache.org/viewvc?rev=1377224&view=rev
Log:
[HBASE-6235] Reset the max and min for the time varying metrics in HBase

Author: liyintang

Summary: Reset the max and min for the time varying metrics in HBase

Test Plan: Unit test and dev cluster test

Reviewers: mbautin, hkuang

Reviewed By: mbautin

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D530335

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HConstants.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/metrics/PersistentMetricsTimeVaryingRate.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerDynamicMetrics.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HConstants.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HConstants.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HConstants.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HConstants.java Sat Aug 25 06:48:12 2012
@@ -564,6 +564,14 @@ public final class HConstants {
 
   public static final int IPC_CALL_PARAMETER_LENGTH_MAX = 1000;
 
+  /** The metric name for RpcQueueTime */
+  public static final String RPC_QUEUE_TIME = "RpcQueueTime";
+  
+  /** The metric name for RpcProcessingTime */
+  public static final String RPC_PROCESS_TIME = "RpcProcessingTime";
+  
+  public static final boolean RESET_MINMAX = true;
+  
   private HConstants() {
     // Can't be instantiated with this ctor.
   }

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java Sat Aug 25 06:48:12 2012
@@ -589,8 +589,8 @@ public class HBaseRPC {
             " queueTime= " + qTime +
             " procesingTime= " + processingTime);
         }
-        rpcMetrics.rpcQueueTime.inc(qTime);
-        rpcMetrics.rpcProcessingTime.inc(processingTime);
+        rpcMetrics.inc(HConstants.RPC_QUEUE_TIME, qTime);
+        rpcMetrics.inc(HConstants.RPC_PROCESS_TIME, processingTime);
         rpcMetrics.inc(call.getMethodName(), processingTime);
         if (verbose) trace("Return: " + value);
 

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java Sat Aug 25 06:48:12 2012
@@ -22,10 +22,12 @@ package org.apache.hadoop.hbase.ipc;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.metrics.MetricsContext;
 import org.apache.hadoop.metrics.MetricsRecord;
 import org.apache.hadoop.metrics.MetricsUtil;
 import org.apache.hadoop.metrics.Updater;
+import org.apache.hadoop.metrics.util.MetricsBase;
 import org.apache.hadoop.metrics.util.MetricsRegistry;
 import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
 
@@ -46,21 +48,6 @@ public class HBaseRpcMetrics implements 
   private static Log LOG = LogFactory.getLog(HBaseRpcMetrics.class);
   private final HBaseRPCStatistics rpcStatistics;
 
-  public HBaseRpcMetrics(String hostName, String port) {
-    MetricsContext context = MetricsUtil.getContext("rpc");
-    metricsRecord = MetricsUtil.createRecord(context, "metrics");
-
-    metricsRecord.setTag("port", port);
-
-    LOG.info("Initializing RPC Metrics with hostName="
-        + hostName + ", port=" + port);
-
-    context.registerUpdater(this);
-
-    rpcStatistics = new HBaseRPCStatistics(this.registry, hostName, port);
-  }
-
-
   /**
    * The metrics variables are public:
    *  - they can be set directly by calling their set/inc methods
@@ -68,17 +55,25 @@ public class HBaseRpcMetrics implements 
    */
   public final MetricsRegistry registry = new MetricsRegistry();
 
-  public MetricsTimeVaryingRate rpcQueueTime = new MetricsTimeVaryingRate("RpcQueueTime", registry);
-  public MetricsTimeVaryingRate rpcProcessingTime = new MetricsTimeVaryingRate("RpcProcessingTime", registry);
-
-  //public Map <String, MetricsTimeVaryingRate> metricsList = Collections.synchronizedMap(new HashMap<String, MetricsTimeVaryingRate>());
-
+  public HBaseRpcMetrics(String hostName, String port) {
+    this.create(HConstants.RPC_QUEUE_TIME);
+    this.create(HConstants.RPC_PROCESS_TIME);
+    
+    MetricsContext context = MetricsUtil.getContext("rpc");
+    metricsRecord = MetricsUtil.createRecord(context, "metrics");
+    metricsRecord.setTag("port", port);
+    LOG.info("Initializing RPC Metrics with hostName="  + hostName + ", port=" + port);
+    rpcStatistics = new HBaseRPCStatistics(this.registry, hostName, port);
+    
+    context.registerUpdater(this);
+  }
 
   private MetricsTimeVaryingRate get(String key) {
     return (MetricsTimeVaryingRate) registry.get(key);
   }
   private MetricsTimeVaryingRate create(String key) {
-    return new MetricsTimeVaryingRate(key, this.registry);
+    return new MetricsTimeVaryingRate(key, this.registry, MetricsBase.NO_DESCRIPTION,
+        HConstants.RESET_MINMAX);
   }
 
   public synchronized void inc(String name, int amt) {
@@ -94,15 +89,10 @@ public class HBaseRpcMetrics implements 
    * @param context ctx
    */
   public void doUpdates(MetricsContext context) {
-    rpcQueueTime.pushMetric(metricsRecord);
-    rpcProcessingTime.pushMetric(metricsRecord);
-
     synchronized (registry) {
       // Iterate through the registry to propagate the different rpc metrics.
-
       for (String metricName : registry.getKeyList() ) {
         MetricsTimeVaryingRate value = (MetricsTimeVaryingRate) registry.get(metricName);
-
         value.pushMetric(metricsRecord);
       }
     }

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/metrics/PersistentMetricsTimeVaryingRate.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/metrics/PersistentMetricsTimeVaryingRate.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/metrics/PersistentMetricsTimeVaryingRate.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/metrics/PersistentMetricsTimeVaryingRate.java Sat Aug 25 06:48:12 2012
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.metrics;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.metrics.MetricsRecord;
 import org.apache.hadoop.metrics.util.MetricsRegistry;
 import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
@@ -45,7 +46,7 @@ public class PersistentMetricsTimeVaryin
   public PersistentMetricsTimeVaryingRate(final String nam,
       final MetricsRegistry registry,
       final String description) {
-    super(nam, registry, description);
+    super(nam, registry, description, HConstants.RESET_MINMAX);
   }
 
   /**

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerDynamicMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerDynamicMetrics.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerDynamicMetrics.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerDynamicMetrics.java Sat Aug 25 06:48:12 2012
@@ -27,6 +27,7 @@ import java.util.concurrent.atomic.Atomi
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.util.Pair;
 import org.apache.hadoop.metrics.MetricsContext;
@@ -111,7 +112,8 @@ public class RegionServerDynamicMetrics 
       int numOps) {
     MetricsTimeVaryingRate m = (MetricsTimeVaryingRate)registry.get(name);
     if (m == null) {
-      m = new MetricsTimeVaryingRate(name, this.registry);
+      m = new MetricsTimeVaryingRate(name, this.registry, MetricsBase.NO_DESCRIPTION, 
+          HConstants.RESET_MINMAX);
       try {
         if (updateMbeanInfoIfMetricsListChanged != null) {
           updateMbeanInfoIfMetricsListChanged.invoke(this.rsDynamicStatistics,

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java?rev=1377224&r1=1377223&r2=1377224&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java Sat Aug 25 06:48:12 2012
@@ -43,7 +43,6 @@ import org.apache.hadoop.metrics.util.Me
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.lang.management.MemoryUsage;
-import java.util.ArrayList;
 import java.util.List;
 
 /**