Author: jdcryans
Date: Wed Dec 30 18:28:28 2009
New Revision: 894690

URL: http://svn.apache.org/viewvc?rev=894690&view=rev
Log:
HBASE-2068  MetricsRate is missing "registry" parameter (Lars George via JD)
HBASE-2078  Add JMX settings as commented out lines to hbase-env.sh
            (Lars George via JD)

Modified:
    hadoop/hbase/branches/0.20/CHANGES.txt
    hadoop/hbase/branches/0.20/conf/hbase-env.sh
    
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java
    
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/metrics/MetricsRate.java
    
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=894690&r1=894689&r2=894690&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Wed Dec 30 18:28:28 2009
@@ -32,6 +32,8 @@
    HBASE-2075  Master requires HDFS superuser privileges due to waitOnSafeMode
    HBASE-2077  NullPointerException with an open scanner that expired causing 
                an immediate region server shutdown (Sam Pullara via JD)
+   HBASE-2078  Add JMX settings as commented out lines to hbase-env.sh
+               (Lars George via JD)
 
   IMPROVEMENTS
    HBASE-1961  HBase EC2 scripts
@@ -66,6 +68,7 @@
    HBASE-2045  Update trunk and branch zk to just-release 3.2.2.
    HBASE-2074  Improvements to the hadoop-config script (Bassam Tabbara via 
Stack)
    HBASE-2076  Many javadoc warnings
+   HBASE-2068  MetricsRate is missing "registry" parameter (Lars George via JD)
 
 Release 0.20.2 - November 18th, 2009
   INCOMPATIBLE CHANGES

Modified: hadoop/hbase/branches/0.20/conf/hbase-env.sh
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/conf/hbase-env.sh?rev=894690&r1=894689&r2=894690&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/conf/hbase-env.sh (original)
+++ hadoop/hbase/branches/0.20/conf/hbase-env.sh Wed Dec 30 18:28:28 2009
@@ -37,7 +37,16 @@
 export HBASE_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC 
-XX:+CMSIncrementalMode"
 
 # Uncomment below to enable java garbage collection logging.
-#export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log"
+# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log"
+
+# Uncomment and adjust/create "jmxremote.*" to enable JMX exporting
+# export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false"
+# export HBASE_JMX_BASE="$HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.password.file=$HBASE_HOME/conf/jmxremote.password"
+# export HBASE_JMX_BASE="$HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.access.file=$HBASE_HOME/conf/jmxremote.access"
+# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.port=10101"
+# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.port=10102"
+# export HBASE_THRIFT_OPTS="$HBASE_THRIFT_OPTS $HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.port=10103"
+# export HBASE_ZOOKEEPER_OPTS="$HBASE_ZOOKEEPER_OPTS $HBASE_JMX_BASE 
-Dcom.sun.management.jmxremote.port=10104"
 
 # File naming hosts on which HRegionServers will run.  
$HBASE_HOME/conf/regionservers by default.
 # export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers

Modified: 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java?rev=894690&r1=894689&r2=894690&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java
 (original)
+++ 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java
 Wed Dec 30 18:28:28 2009
@@ -19,12 +19,12 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.metrics.MetricsRate;
 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.jvm.JvmMetrics;
-import org.apache.hadoop.metrics.util.MetricsIntValue;
 import org.apache.hadoop.metrics.util.MetricsRegistry;
 
 
@@ -43,8 +43,8 @@
   /*
    * Count of requests to the cluster since last call to metrics update
    */
-  private final MetricsIntValue cluster_requests =
-    new MetricsIntValue("cluster_requests", registry);
+  private final MetricsRate cluster_requests = 
+    new MetricsRate("cluster_requests", registry);
 
   public MasterMetrics() {
     MetricsContext context = MetricsUtil.getContext("hbase");
@@ -72,11 +72,7 @@
    */
   public void doUpdates(MetricsContext unused) {
     synchronized (this) {
-      synchronized(this.cluster_requests) {
-        this.cluster_requests.pushMetric(metricsRecord);
-        // Set requests down to zero again.
-        this.cluster_requests.set(0);
-      }
+      this.cluster_requests.pushMetric(metricsRecord);
     }
     this.metricsRecord.update();
   }
@@ -88,16 +84,14 @@
   /**
    * @return Count of requests.
    */
-  public int getRequests() {
-    return this.cluster_requests.get();
+  public float getRequests() {
+    return this.cluster_requests.getPreviousIntervalValue();
   }
   
   /**
    * @param inc How much to add to requests.
    */
   public void incrementRequests(final int inc) {
-    synchronized(this.cluster_requests) {
-      this.cluster_requests.set(this.cluster_requests.get() + inc);
-    }
+    this.cluster_requests.inc(inc);
   }
 }
\ No newline at end of file

Modified: 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/metrics/MetricsRate.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/metrics/MetricsRate.java?rev=894690&r1=894689&r2=894690&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/metrics/MetricsRate.java
 (original)
+++ 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/metrics/MetricsRate.java
 Wed Dec 30 18:28:28 2009
@@ -20,25 +20,32 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.metrics.MetricsRecord;
+import org.apache.hadoop.metrics.util.MetricsBase;
+import org.apache.hadoop.metrics.util.MetricsRegistry;
 import org.apache.hadoop.util.StringUtils;
 
 /**
  * Publishes a rate based on a counter - you increment the counter each
  * time an event occurs (eg: an RPC call) and this publishes a rate.
  */
-public class MetricsRate {
+public class MetricsRate extends MetricsBase {
   private static final Log LOG = 
LogFactory.getLog("org.apache.hadoop.hbase.metrics");
   
-  private String name;
   private int value;
   private float prevRate;
   private long ts;
   
-  public MetricsRate(final String name) {
-    this.name = name;
+  public MetricsRate(final String name, final MetricsRegistry registry, 
+      final String description) {
+    super(name, description);
     this.value = 0;
     this.prevRate = 0;
     this.ts = System.currentTimeMillis();
+    registry.add(name, this);
+  }
+  
+  public MetricsRate(final String name, final MetricsRegistry registry) {
+    this(name, registry, NO_DESCRIPTION);
   }
   
   public synchronized void inc(final int incr) {
@@ -58,15 +65,17 @@
     this.ts = now;
   }
   
+  @Override
   public synchronized void pushMetric(final MetricsRecord mr) {
     intervalHeartBeat();
     try {
-      mr.setMetric(name, getPreviousIntervalValue());
+      mr.setMetric(getName(), getPreviousIntervalValue());
     } catch (Exception e) {
-      LOG.info("pushMetric failed for " + name + "\n" + 
+      LOG.info("pushMetric failed for " + getName() + "\n" + 
           StringUtils.stringifyException(e));
     }
   }
+  
   public synchronized float getPreviousIntervalValue() {
     return this.prevRate;
   }

Modified: 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java?rev=894690&r1=894689&r2=894690&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
 (original)
+++ 
hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
 Wed Dec 30 18:28:28 2009
@@ -81,7 +81,7 @@
   /*
    * Count of requests to the regionservers since last call to metrics update
    */
-    private final MetricsRate requests = new MetricsRate("requests");
+  private final MetricsRate requests = new MetricsRate("requests", registry);
 
   /**
    * Count of stores open on the regionserver.


Reply via email to