This is an automated email from the ASF dual-hosted git repository.
xbis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 71019a866b HDDS-9933. Recon datanode 'Last Heartbeat' should print
relative values (#5801)
71019a866b is described below
commit 71019a866b17c34fe30d3a90d019d47ddebcd5b7
Author: Christos Bisias <[email protected]>
AuthorDate: Tue Dec 19 19:41:59 2023 +0200
HDDS-9933. Recon datanode 'Last Heartbeat' should print relative values
(#5801)
---
.../src/views/datanodes/datanodes.tsx | 24 ++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/datanodes/datanodes.tsx
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/datanodes/datanodes.tsx
index e418bf2fef..6a6118494f 100644
---
a/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/datanodes/datanodes.tsx
+++
b/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/datanodes/datanodes.tsx
@@ -42,7 +42,7 @@ interface IDatanodeResponse {
hostname: string;
state: DatanodeState;
opState: DatanodeOpState;
- lastHeartbeat: number;
+ lastHeartbeat: string;
storageReport: IStorageReport;
pipelines: IPipeline[];
containers: number;
@@ -182,7 +182,7 @@ const COLUMNS = [
isVisible: true,
sorter: (a: IDatanode, b: IDatanode) => a.lastHeartbeat - b.lastHeartbeat,
render: (heartbeat: number) => {
- return heartbeat > 0 ? moment(heartbeat).format('ll LTS') : 'NA';
+ return heartbeat > 0 ? getTimeDiffFromTimestamp(heartbeat) : 'NA';
}
},
{
@@ -303,6 +303,26 @@ const defaultColumns: IOption[] = COLUMNS.map(column => ({
value: column.key
}));
+const getTimeDiffFromTimestamp = (timestamp: number): string => {
+ const timestampDate = new Date(timestamp);
+ const currentDate = new Date();
+
+ let elapsedTime = "";
+ let duration: moment.Duration = moment.duration(
+ moment(currentDate).diff(moment(timestampDate))
+ )
+
+ const durationKeys = ["seconds", "minutes", "hours", "days", "months",
"years"]
+ durationKeys.forEach((k) => {
+ let time = duration["_data"][k]
+ if (time !== 0){
+ elapsedTime = time + `${k.substring(0, 1)} ` + elapsedTime
+ }
+ })
+
+ return elapsedTime.trim().length === 0 ? "Just now" : elapsedTime.trim() + "
ago";
+}
+
let cancelSignal: AbortController;
export class Datanodes extends React.Component<Record<string, object>,
IDatanodesState> {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]