Index: src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon
===================================================================
--- src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon (revision 1160106)
+++ src/main/jamon/org/apache/hbase/tmpl/master/MasterStatusTmpl.jamon (working copy)
@@ -198,7 +198,7 @@
<%java>
}
%java>
-
| Total: | servers: <% servers.size() %> | | requests=<% totalRequests %>, regions=<% totalRegions %> |
+| Total: | servers: <% servers.size() %> | | requestsPerSecond=<% totalRequests %>, numberOfOnlineRegions=<% totalRegions %> |
Load is requests per second and count of regions loaded
Index: src/main/java/org/apache/hadoop/hbase/HServerLoad.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/HServerLoad.java (revision 1160106)
+++ src/main/java/org/apache/hadoop/hbase/HServerLoad.java (working copy)
@@ -40,11 +40,15 @@
// Empty load instance.
public static final HServerLoad EMPTY_HSERVERLOAD = new HServerLoad();
- /** Number of requests since last report
+ /** Number of requests per second since last report.
*/
// TODO: Instead build this up out of region counters.
private int numberOfRequests = 0;
+ /** Total Number of requests from the start of the region server.
+ */
+ private int totalNumberOfRequests = 0;
+
/** the amount of used heap, in MB */
private int usedHeapMB = 0;
@@ -367,12 +371,14 @@
* @param usedHeapMB
* @param maxHeapMB
*/
- public HServerLoad(final int numberOfRequests, final int usedHeapMB,
- final int maxHeapMB, final Map regionLoad) {
+ public HServerLoad(final int totalNumberOfRequests,
+ final int numberOfRequests, final int usedHeapMB, final int maxHeapMB,
+ final Map regionLoad) {
this.numberOfRequests = numberOfRequests;
this.usedHeapMB = usedHeapMB;
this.maxHeapMB = maxHeapMB;
this.regionLoad = regionLoad;
+ this.totalNumberOfRequests = totalNumberOfRequests;
}
/**
@@ -380,7 +386,8 @@
* @param hsl the template HServerLoad
*/
public HServerLoad(final HServerLoad hsl) {
- this(hsl.numberOfRequests, hsl.usedHeapMB, hsl.maxHeapMB, hsl.getRegionsLoad());
+ this(hsl.totalNumberOfRequests, hsl.numberOfRequests, hsl.usedHeapMB,
+ hsl.maxHeapMB, hsl.getRegionsLoad());
for (Map.Entry e : hsl.regionLoad.entrySet()) {
this.regionLoad.put(e.getKey(), e.getValue());
}
@@ -456,11 +463,18 @@
}
/**
- * @return the numberOfRequests
+ * @return the numberOfRequests per second.
*/
public int getNumberOfRequests() {
return numberOfRequests;
}
+
+ /**
+ * @return the numberOfRequests
+ */
+ public int getTotalNumberOfRequests() {
+ return totalNumberOfRequests;
+ }
/**
* @return the amount of heap in use, in MB
@@ -538,6 +552,7 @@
rl.readFields(in);
regionLoad.put(rl.getName(), rl);
}
+ totalNumberOfRequests = in.readInt();
}
public void write(DataOutput out) throws IOException {
@@ -549,6 +564,7 @@
out.writeInt(this.regionLoad.size());
for (RegionLoad rl: regionLoad.values())
rl.write(out);
+ out.writeInt(totalNumberOfRequests);
}
// Comparable
Index: src/main/java/org/apache/hadoop/hbase/master/HMaster.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/master/HMaster.java (revision 1160106)
+++ src/main/java/org/apache/hadoop/hbase/master/HMaster.java (working copy)
@@ -754,7 +754,7 @@
this.serverManager.regionServerReport(new ServerName(sn), hsl);
if (hsl != null && this.metrics != null) {
// Up our metrics.
- this.metrics.incrementRequests(hsl.getNumberOfRequests());
+ this.metrics.incrementRequests(hsl.getTotalNumberOfRequests());
}
}
Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1160106)
+++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy)
@@ -766,7 +766,7 @@
}
MemoryUsage memory =
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
- return new HServerLoad(requestCount.get(),
+ return new HServerLoad(requestCount.get(),(int)metrics.getRequests(),
(int)(memory.getUsed() / 1024 / 1024),
(int) (memory.getMax() / 1024 / 1024), regionLoads);
}
Index: src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
===================================================================
--- src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (revision 1160106)
+++ src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (working copy)
@@ -364,8 +364,8 @@
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- sb = Strings.appendKeyValue(sb, "requestsPerSecond",
- Float.valueOf(this.requests.getPreviousIntervalValue()));
+ sb = Strings.appendKeyValue(sb, "requestsPerSecond", Integer
+ .valueOf((int) this.requests.getPreviousIntervalValue()));
sb = Strings.appendKeyValue(sb, "numberOfOnlineRegions",
Integer.valueOf(this.regions.get()));
sb = Strings.appendKeyValue(sb, "numberOfStores",