Index: src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (revision 1234448) +++ src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (working copy) @@ -38,6 +38,7 @@ import org.apache.hadoop.metrics.util.MetricsLongValue; import org.apache.hadoop.metrics.util.MetricsRegistry; import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate; +import org.apache.hadoop.metrics.util.MetricsTimeVaryingLong; import org.apache.hadoop.util.StringUtils; import java.io.IOException; @@ -238,6 +239,12 @@ public final MetricsTimeVaryingRate slowHLogAppendTime = new MetricsTimeVaryingRate("slowHLogAppendTime", registry); + + public final MetricsTimeVaryingLong regionSplitSuccessCount = + new MetricsTimeVaryingLong("regionSplitSuccessCount", registry); + + public final MetricsTimeVaryingLong regionSplitFailureCount = + new MetricsTimeVaryingLong("regionSplitFailureCount", registry); public RegionServerMetrics() { MetricsContext context = MetricsUtil.getContext("hbase"); @@ -354,6 +361,8 @@ this.flushTime.pushMetric(this.metricsRecord); this.flushSize.pushMetric(this.metricsRecord); this.slowHLogAppendCount.pushMetric(this.metricsRecord); + this.regionSplitSuccessCount.pushMetric(this.metricsRecord); + this.regionSplitFailureCount.pushMetric(this.metricsRecord); } this.metricsRecord.update(); } @@ -411,6 +420,14 @@ public void incrementRequests(final int inc) { this.requests.inc(inc); } + + public void incrementSplitSuccessCount() { + this.regionSplitSuccessCount.inc(); + } + + public void incrementSplitFailureCount() { + this.regionSplitFailureCount.inc(); + } @Override public String toString() { Index: src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java (revision 1234448) +++ src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java (working copy) @@ -65,6 +65,7 @@ if (!st.prepare()) return; try { st.execute(this.server, this.server); + this.server.getMetrics().incrementSplitSuccessCount(); } catch (Exception e) { try { LOG.info("Running rollback/cleanup of failed split of " + @@ -72,6 +73,7 @@ if (st.rollback(this.server, this.server)) { LOG.info("Successful rollback of failed split of " + parent.getRegionNameAsString()); + this.server.getMetrics().incrementSplitFailureCount(); } else { this.server.abort("Abort; we got an error after point-of-no-return"); } @@ -92,6 +94,7 @@ } catch (IOException ex) { LOG.error("Split failed " + this, RemoteExceptionHandler .checkIOException(ex)); + this.server.getMetrics().incrementSplitFailureCount(); server.checkFileSystem(); } }