This is an automated email from the ASF dual-hosted git repository. weichiu pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push: new 0ed817b HDFS-16337. Show start time of Datanode on Web (#3682) 0ed817b is described below commit 0ed817babbcaa0560c11e2065cff3fff0bf328c5 Author: litao <tomlees...@gmail.com> AuthorDate: Tue Nov 23 10:18:30 2021 +0800 HDFS-16337. Show start time of Datanode on Web (#3682) Reviewed-by: Inigo Goiri <inigo...@apache.org> --- .../java/org/apache/hadoop/hdfs/server/datanode/DataNode.java | 8 ++++++++ .../org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java | 7 +++++++ .../hadoop-hdfs/src/main/webapps/datanode/datanode.html | 1 + .../apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java | 3 +++ 4 files changed, 19 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java index 3a4d4e9..08018cc 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java @@ -52,6 +52,7 @@ import static org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStag import static org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage.PIPELINE_SETUP_CREATE; import static org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage.PIPELINE_SETUP_STREAMING_RECOVERY; import static org.apache.hadoop.util.ExitUtil.terminate; +import static org.apache.hadoop.util.Time.now; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.fs.DF; @@ -411,6 +412,8 @@ public class DataNode extends ReconfigurableBase private ScheduledThreadPoolExecutor metricsLoggerTimer; + private final long startTime = now(); + /** * Creates a dummy DataNode for testing purpose. */ @@ -3195,6 +3198,11 @@ public class DataNode extends ReconfigurableBase return this.getConf().get("dfs.datanode.info.port"); } + @Override // DataNodeMXBean + public long getDNStartedTimeInMillis() { + return this.startTime; + } + public String getRevision() { return VersionInfo.getRevision(); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java index 7a8f59b..6553775 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java @@ -157,4 +157,11 @@ public interface DataNodeMXBean { * @return true, if security is enabled. */ boolean isSecurityEnabled(); + + /** + * Get the start time of the DataNode. + * + * @return Start time of the DataNode. + */ + long getDNStartedTimeInMillis(); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/datanode.html b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/datanode.html index 7301064..b680f0a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/datanode.html +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/datanode.html @@ -71,6 +71,7 @@ <div class="page-header"><h1>DataNode on <small>{HostName}:{DataPort}</small></h1></div> <table class="table table-bordered table-striped"> <tr><th>Cluster ID:</th><td>{ClusterId}</td></tr> + <tr><th>Started:</th><td>{DNStartedTimeInMillis|date_tostring}</td></tr> <tr><th>Version:</th><td>{Version}</td></tr> </table> {/dn} diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java index 73f664b..f72f1bc 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java @@ -75,6 +75,9 @@ public class TestDataNodeMXBean extends SaslDataTransferTestCase { // get attribute "Version" String version = (String)mbs.getAttribute(mxbeanName, "Version"); Assert.assertEquals(datanode.getVersion(),version); + // get attribute "DNStartedTimeInMillis" + long startTime = (long) mbs.getAttribute(mxbeanName, "DNStartedTimeInMillis"); + Assert.assertEquals(datanode.getDNStartedTimeInMillis(), startTime); // get attribute "SotfwareVersion" String softwareVersion = (String)mbs.getAttribute(mxbeanName, "SoftwareVersion"); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org