You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2017/08/09 05:51:29 UTC
[13/27] hbase git commit: HBASE-18520 Add jmx value to determine true
Master Start time
HBASE-18520 Add jmx value to determine true Master Start time
This is to determine how long it took in total for the master to start and finish initializing.
Signed-off-by: tedyu <yu...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/637f7abf
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/637f7abf
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/637f7abf
Branch: refs/heads/HBASE-18467
Commit: 637f7abf0b3ab33b105346c6627dc9b2170eab53
Parents: 7da4750
Author: Zach York <zy...@amazon.com>
Authored: Thu Jun 15 17:10:07 2017 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Sat Aug 5 22:32:33 2017 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/master/MetricsMasterSource.java | 2 ++
.../apache/hadoop/hbase/master/MetricsMasterWrapper.java | 5 +++++
.../hadoop/hbase/master/MetricsMasterSourceImpl.java | 2 ++
.../java/org/apache/hadoop/hbase/master/HMaster.java | 11 +++++++++++
.../hadoop/hbase/master/MetricsMasterWrapperImpl.java | 5 +++++
.../apache/hadoop/hbase/regionserver/HRegionServer.java | 2 +-
6 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/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 9163511..d187bb1 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
@@ -49,6 +49,7 @@ public interface MetricsMasterSource extends BaseSource {
// Strings used for exporting to metrics system.
String MASTER_ACTIVE_TIME_NAME = "masterActiveTime";
String MASTER_START_TIME_NAME = "masterStartTime";
+ String MASTER_FINISHED_INITIALIZATION_TIME_NAME = "masterFinishedInitializationTime";
String AVERAGE_LOAD_NAME = "averageLoad";
String LIVE_REGION_SERVERS_NAME = "liveRegionServers";
String DEAD_REGION_SERVERS_NAME = "deadRegionServers";
@@ -64,6 +65,7 @@ public interface MetricsMasterSource extends BaseSource {
String CLUSTER_REQUESTS_NAME = "clusterRequests";
String MASTER_ACTIVE_TIME_DESC = "Master Active Time";
String MASTER_START_TIME_DESC = "Master Start Time";
+ String MASTER_FINISHED_INITIALIZATION_TIME_DESC = "Timestamp when Master has finished initializing";
String AVERAGE_LOAD_DESC = "AverageLoad";
String LIVE_REGION_SERVERS_DESC = "Names of live RegionServers";
String NUMBER_OF_REGION_SERVERS_DESC = "Number of RegionServers";
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/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 4789283..80e0892 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
@@ -134,4 +134,9 @@ public interface MetricsMasterWrapper {
* Gets the space usage and limit for each namespace.
*/
Map<String,Entry<Long,Long>> getNamespaceSpaceUtilization();
+
+ /**
+ * Get the time in Millis when the master finished initializing/becoming the active master
+ */
+ long getMasterInitializationTime();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/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 f21e29e..51f8fad 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
@@ -92,6 +92,8 @@ public class MetricsMasterSourceImpl
MASTER_ACTIVE_TIME_DESC), masterWrapper.getActiveTime())
.addGauge(Interns.info(MASTER_START_TIME_NAME,
MASTER_START_TIME_DESC), masterWrapper.getStartTime())
+ .addGauge(Interns.info(MASTER_FINISHED_INITIALIZATION_TIME_NAME, MASTER_FINISHED_INITIALIZATION_TIME_DESC),
+ masterWrapper.getMasterInitializationTime())
.addGauge(Interns.info(AVERAGE_LOAD_NAME, AVERAGE_LOAD_DESC),
masterWrapper.getAverageLoad())
.tag(Interns.info(LIVE_REGION_SERVERS_NAME, LIVE_REGION_SERVERS_DESC),
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/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 5316b54..d6b149a 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
@@ -371,6 +371,9 @@ public class HMaster extends HRegionServer implements MasterServices {
// Time stamps for when a hmaster became active
private long masterActiveTime;
+ // Time stamp for when HMaster finishes becoming Active Master
+ private long masterFinishedInitializationTime;
+
//should we check the compression codec type at master side, default true, HBASE-6370
private final boolean masterCheckCompression;
@@ -875,6 +878,7 @@ public class HMaster extends HRegionServer implements MasterServices {
status.markComplete("Initialization successful");
LOG.info(String.format("Master has completed initialization %.3fsec",
(System.currentTimeMillis() - masterActiveTime) / 1000.0f));
+ this.masterFinishedInitializationTime = System.currentTimeMillis();
configurationManager.registerObserver(this.balancer);
configurationManager.registerObserver(this.hfileCleaner);
@@ -2513,6 +2517,13 @@ public class HMaster extends HRegionServer implements MasterServices {
return masterActiveTime;
}
+ /**
+ * @return timestamp in millis when HMaster finished becoming the active master
+ */
+ public long getMasterFinishedInitializationTime() {
+ return masterFinishedInitializationTime;
+ }
+
public int getNumWALFiles() {
return procedureStore != null ? procedureStore.getActiveLogs().size() : 0;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/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 ed37d19..518c7b4 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
@@ -59,6 +59,11 @@ public class MetricsMasterWrapperImpl implements MetricsMasterWrapper {
}
@Override
+ public long getMasterInitializationTime() {
+ return master.getMasterFinishedInitializationTime();
+ }
+
+ @Override
public String getClusterId() {
return master.getClusterId();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/637f7abf/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
index 184f070..0774df1 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
@@ -545,6 +545,7 @@ public class HRegionServer extends HasThread implements
*/
public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {
super("RegionServer"); // thread name
+ this.startcode = System.currentTimeMillis();
this.fsOk = true;
this.conf = conf;
// initialize netty event loop group at the very beginning as we may use it to start rpc server,
@@ -590,7 +591,6 @@ public class HRegionServer extends HasThread implements
this.stopped = false;
rpcServices = createRpcServices();
- this.startcode = System.currentTimeMillis();
if (this instanceof HMaster) {
useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);
} else {