HBASE-1258,1259 ganglia metrics for 'requests' is confusing

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@753602 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2009-03-14 05:59:48 +00:00
parent e8520cf5d3
commit ed32441b0c
2 changed files with 15 additions and 17 deletions

View File

@ -95,6 +95,8 @@ Release 0.20.0 - Unreleased
HBASE-803 Atomic increment operations (Ryan Rawson and Jon Gray via Stack) HBASE-803 Atomic increment operations (Ryan Rawson and Jon Gray via Stack)
HBASE-1252 Make atomic increment perform a binary increment HBASE-1252 Make atomic increment perform a binary increment
(Jonathan Gray via Stack) (Jonathan Gray via Stack)
HBASE-1258,1259 ganglia metrics for 'requests' is confusing
(Ryan Rawson via Stack)
Release 0.19.0 - 01/21/2009 Release 0.19.0 - 01/21/2009
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -22,6 +22,7 @@ import java.lang.management.MemoryUsage;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.metrics.MetricsRate;
import org.apache.hadoop.hbase.util.Strings; import org.apache.hadoop.hbase.util.Strings;
import org.apache.hadoop.metrics.MetricsContext; import org.apache.hadoop.metrics.MetricsContext;
import org.apache.hadoop.metrics.MetricsRecord; import org.apache.hadoop.metrics.MetricsRecord;
@ -29,6 +30,7 @@ import org.apache.hadoop.metrics.MetricsUtil;
import org.apache.hadoop.metrics.Updater; import org.apache.hadoop.metrics.Updater;
import org.apache.hadoop.metrics.jvm.JvmMetrics; import org.apache.hadoop.metrics.jvm.JvmMetrics;
import org.apache.hadoop.metrics.util.MetricsIntValue; import org.apache.hadoop.metrics.util.MetricsIntValue;
import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
/** /**
@ -47,34 +49,34 @@ public class RegionServerMetrics implements Updater {
/** /**
* Count of regions carried by this regionserver * Count of regions carried by this regionserver
*/ */
public final MetricsIntValue regions = new MetricsIntValue("regions"); public final MetricsIntValue regions = new MetricsIntValue("hbase_regions");
/* /*
* Count of requests to the regionservers since last call to metrics update * Count of requests to the regionservers since last call to metrics update
*/ */
private final MetricsIntValue requests = new MetricsIntValue("requests"); private final MetricsRate requests = new MetricsRate("hbase_requests");
/** /**
* Count of stores open on the regionserver. * Count of stores open on the regionserver.
*/ */
public final MetricsIntValue stores = new MetricsIntValue("stores"); public final MetricsIntValue stores = new MetricsIntValue("hbase_stores");
/** /**
* Count of storefiles open on the regionserver. * Count of storefiles open on the regionserver.
*/ */
public final MetricsIntValue storefiles = new MetricsIntValue("storefiles"); public final MetricsIntValue storefiles = new MetricsIntValue("hbase_storefiles");
/** /**
* Sum of all the storefile index sizes in this regionserver in MB * Sum of all the storefile index sizes in this regionserver in MB
*/ */
public final MetricsIntValue storefileIndexSizeMB = public final MetricsIntValue storefileIndexSizeMB =
new MetricsIntValue("storefileIndexSizeMB"); new MetricsIntValue("hbase_storefileIndexSizeMB");
/** /**
* Sum of all the memcache sizes in this regionserver in MB * Sum of all the memcache sizes in this regionserver in MB
*/ */
public final MetricsIntValue memcacheSizeMB = public final MetricsIntValue memcacheSizeMB =
new MetricsIntValue("memcachSizeMB"); new MetricsIntValue("hbase_memcacheSizeMB");
public RegionServerMetrics() { public RegionServerMetrics() {
MetricsContext context = MetricsUtil.getContext("hbase"); MetricsContext context = MetricsUtil.getContext("hbase");
@ -102,11 +104,7 @@ public class RegionServerMetrics implements Updater {
this.storefileIndexSizeMB.pushMetric(this.metricsRecord); this.storefileIndexSizeMB.pushMetric(this.metricsRecord);
this.memcacheSizeMB.pushMetric(this.metricsRecord); this.memcacheSizeMB.pushMetric(this.metricsRecord);
this.regions.pushMetric(this.metricsRecord); this.regions.pushMetric(this.metricsRecord);
synchronized(this.requests) { this.requests.pushMetric(this.metricsRecord);
this.requests.pushMetric(this.metricsRecord);
// Set requests down to zero again.
this.requests.set(0);
}
} }
this.metricsRecord.update(); this.metricsRecord.update();
this.lastUpdate = System.currentTimeMillis(); this.lastUpdate = System.currentTimeMillis();
@ -119,17 +117,15 @@ public class RegionServerMetrics implements Updater {
/** /**
* @return Count of requests. * @return Count of requests.
*/ */
public int getRequests() { public float getRequests() {
return this.requests.get(); return this.requests.getPreviousIntervalValue();
} }
/** /**
* @param inc How much to add to requests. * @param inc How much to add to requests.
*/ */
public void incrementRequests(final int inc) { public void incrementRequests(final int inc) {
synchronized(this.requests) { this.requests.inc(inc);
this.requests.inc(inc);
}
} }
@Override @Override
@ -140,7 +136,7 @@ public class RegionServerMetrics implements Updater {
seconds = 1; seconds = 1;
} }
sb = Strings.appendKeyValue(sb, "request", sb = Strings.appendKeyValue(sb, "request",
Integer.valueOf(this.requests.get()/seconds)); Float.valueOf(this.requests.getPreviousIntervalValue()));
sb = Strings.appendKeyValue(sb, "regions", sb = Strings.appendKeyValue(sb, "regions",
Integer.valueOf(this.regions.get())); Integer.valueOf(this.regions.get()));
sb = Strings.appendKeyValue(sb, "stores", sb = Strings.appendKeyValue(sb, "stores",