You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jm...@apache.org on 2016/01/14 18:08:46 UTC
[32/50] [abbrv] hbase git commit: HBASE-15068 Add metrics for region
normalization plans
HBASE-15068 Add metrics for region normalization plans
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/5266b077
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5266b077
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5266b077
Branch: refs/heads/trunk
Commit: 5266b0770843c57e977385d7ea1d0ea40273668a
Parents: d65978f
Author: tedyu <yu...@gmail.com>
Authored: Thu Jan 7 03:13:16 2016 -0800
Committer: tedyu <yu...@gmail.com>
Committed: Thu Jan 7 03:13:16 2016 -0800
----------------------------------------------------------------------
.../hbase/master/MetricsMasterSource.java | 5 ++++-
.../hbase/master/MetricsMasterWrapper.java | 9 ++++++++
.../hbase/master/MetricsMasterSourceImpl.java | 4 ++++
.../org/apache/hadoop/hbase/master/HMaster.java | 22 ++++++++++++++++++++
.../hbase/master/MetricsMasterWrapperImpl.java | 10 +++++++++
.../hbase/master/TestMasterMetricsWrapper.java | 2 ++
6 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
index ab621cc..290b8f5 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
@@ -57,6 +57,8 @@ public interface MetricsMasterSource extends BaseSource {
String SERVER_NAME_NAME = "serverName";
String CLUSTER_ID_NAME = "clusterId";
String IS_ACTIVE_MASTER_NAME = "isActiveMaster";
+ String SPLIT_PLAN_COUNT_NAME = "splitPlanCount";
+ String MERGE_PLAN_COUNT_NAME = "mergePlanCount";
String CLUSTER_REQUESTS_NAME = "clusterRequests";
String MASTER_ACTIVE_TIME_DESC = "Master Active Time";
@@ -70,7 +72,8 @@ public interface MetricsMasterSource extends BaseSource {
String SERVER_NAME_DESC = "Server Name";
String CLUSTER_ID_DESC = "Cluster Id";
String IS_ACTIVE_MASTER_DESC = "Is Active Master";
-
+ String SPLIT_PLAN_COUNT_DESC = "Number of Region Split Plans executed";
+ String MERGE_PLAN_COUNT_DESC = "Number of Region Merge Plans executed";
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
index 678db69..5e67f83 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
@@ -112,4 +112,13 @@ public interface MetricsMasterWrapper {
*/
long getNumWALFiles();
+ /**
+ * Get the number of region split plans executed.
+ */
+ long getSplitPlanCount();
+
+ /**
+ * Get the number of region merge plans executed.
+ */
+ long getMergePlanCount();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java
index c5ce5e4..b0ba66e 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java
@@ -74,6 +74,10 @@ public class MetricsMasterSourceImpl
// masterWrapper can be null because this function is called inside of init.
if (masterWrapper != null) {
metricsRecordBuilder
+ .addGauge(Interns.info(MERGE_PLAN_COUNT_NAME, MERGE_PLAN_COUNT_DESC),
+ masterWrapper.getMergePlanCount())
+ .addGauge(Interns.info(SPLIT_PLAN_COUNT_NAME, SPLIT_PLAN_COUNT_DESC),
+ masterWrapper.getSplitPlanCount())
.addGauge(Interns.info(MASTER_ACTIVE_TIME_NAME,
MASTER_ACTIVE_TIME_DESC), masterWrapper.getActiveTime())
.addGauge(Interns.info(MASTER_START_TIME_NAME,
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 4a9b792..8ff7ab1 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -333,6 +333,9 @@ public class HMaster extends HRegionServer implements MasterServices {
// handle table states
private TableStateManager tableStateManager;
+
+ private long splitPlanCount;
+ private long mergePlanCount;
/** flag used in test cases in order to simulate RS failures during master initialization */
private volatile boolean initializationBeforeMetaAssignment = false;
@@ -1340,6 +1343,11 @@ public class HMaster extends HRegionServer implements MasterServices {
}
NormalizationPlan plan = this.normalizer.computePlanForTable(table, types);
plan.execute(clusterConnection.getAdmin());
+ if (plan.getType() == PlanType.SPLIT) {
+ splitPlanCount++;
+ } else if (plan.getType() == PlanType.MERGE) {
+ mergePlanCount++;
+ }
}
}
// If Region did not generate any plans, it means the cluster is already balanced.
@@ -2335,6 +2343,20 @@ public class HMaster extends HRegionServer implements MasterServices {
}
return regionStates.getAverageLoad();
}
+
+ /*
+ * @return the count of region split plans executed
+ */
+ public long getSplitPlanCount() {
+ return splitPlanCount;
+ }
+
+ /*
+ * @return the count of region merge plans executed
+ */
+ public long getMergePlanCount() {
+ return mergePlanCount;
+ }
@Override
public boolean registerService(Service instance) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java
index a935a37..4cff28b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java
@@ -40,6 +40,16 @@ public class MetricsMasterWrapperImpl implements MetricsMasterWrapper {
}
@Override
+ public long getSplitPlanCount() {
+ return master.getSplitPlanCount();
+ }
+
+ @Override
+ public long getMergePlanCount() {
+ return master.getMergePlanCount();
+ }
+
+ @Override
public String getClusterId() {
return master.getClusterId();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/5266b077/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
index 2df4ac9..02f3721 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java
@@ -50,6 +50,8 @@ public class TestMasterMetricsWrapper {
public void testInfo() {
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
MetricsMasterWrapperImpl info = new MetricsMasterWrapperImpl(master);
+ assertEquals(master.getSplitPlanCount(), info.getSplitPlanCount(), 0);
+ assertEquals(master.getMergePlanCount(), info.getMergePlanCount(), 0);
assertEquals(master.getAverageLoad(), info.getAverageLoad(), 0);
assertEquals(master.getClusterId(), info.getClusterId());
assertEquals(master.getMasterActiveTime(), info.getActiveTime());