Index: src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 6316) +++ src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -1112,7 +1112,9 @@ this.metrics.storefiles.set(storefiles); this.metrics.memstoreSizeMB.set((int)(memstoreSize/(1024*1024))); this.metrics.storefileIndexSizeMB.set((int)(storefileIndexSize/(1024*1024))); - + this.metrics.compactionQueueSize.set(compactSplitThread. + getCompactionQueueSize()); + LruBlockCache lruBlockCache = (LruBlockCache)StoreFile.getBlockCache(conf); if (lruBlockCache != null) { this.metrics.blockCacheCount.set(lruBlockCache.size()); Index: src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java =================================================================== --- src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (revision 6316) +++ src/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (working copy) @@ -108,6 +108,12 @@ new MetricsIntValue("memstoreSizeMB", registry); /** + * Size of the compaction queue. + */ + public final MetricsIntValue compactionQueueSize = + new MetricsIntValue("compactionQueueSize", registry); + + /** * filesystem read latency */ public final MetricsTimeVaryingRate fsReadLatency = @@ -158,7 +164,7 @@ this.memstoreSizeMB.pushMetric(this.metricsRecord); this.regions.pushMetric(this.metricsRecord); this.requests.pushMetric(this.metricsRecord); - + this.compactionQueueSize.pushMetric(this.metricsRecord); this.blockCacheSize.pushMetric(this.metricsRecord); this.blockCacheFree.pushMetric(this.metricsRecord); this.blockCacheCount.pushMetric(this.metricsRecord); @@ -231,6 +237,8 @@ Integer.valueOf(this.storefileIndexSizeMB.get())); sb = Strings.appendKeyValue(sb, "memstoreSize", Integer.valueOf(this.memstoreSizeMB.get())); + sb = Strings.appendKeyValue(sb, "compactionQueueSize", + Integer.valueOf(this.compactionQueueSize.get())); // Duplicate from jvmmetrics because metrics are private there so // inaccessible. MemoryUsage memory = Index: src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java =================================================================== --- src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java (revision 6316) +++ src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java (working copy) @@ -234,4 +234,14 @@ this.interrupt(); } } + + /** + * Returns the current size of the queue containing regions that are + * processed. + * + * @return The current size of the regions queue. + */ + public int getCompactionQueueSize() { + return compactionQueue.size(); + } } \ No newline at end of file Index: src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java =================================================================== --- src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java (revision 6316) +++ src/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java (working copy) @@ -40,6 +40,7 @@ private final MetricsRecord metricsRecord; private final MetricsRegistry registry = new MetricsRegistry(); private final MasterStatistics masterStatistics; + /* * Count of requests to the cluster since last call to metrics update */ @@ -94,4 +95,4 @@ public void incrementRequests(final int inc) { this.cluster_requests.inc(inc); } -} \ No newline at end of file +}