JSFiddle - React, Tailwind, and code Playground
Get time differences for datalake events.
by Nalin Sajwan
HTML
<script src="https://momentjs.com/downloads/moment.min.js"></script>
JavaScript
const timings = [
[ 'Order Snapshot → Enrich Order', '2021-08-10T18:19:06.389+05:30', '2021-08-10T18:19:10.102+05:30' ],
[ 'Enrich order → S3 Datalake', '2021-08-10T18:19:10.102+05:30', '2021-08-10T18:19:12.780+05:30' ],
[ 'S3 Datalake → Raw crawler (invoke)', '2021-08-10T18:19:12.780+05:30', '2021-08-10T18:19:19.260+05:30' ],
[ 'Raw crawler → Raw catalog', '2021-08-10T18:19:19.260+05:30', '2021-08-10T18:19:59.841+05:30' ],
[ 'Raw catalog → ETL initiates', '2021-08-10T18:19:59.841+05:30', '2021-08-10T18:20:42.582+05:30' ],
[ 'ETL script → Processed S3 datalake', '2021-08-10T18:20:42.582+05:30', '2021-08-10T18:22:23.939+05:30' ],
[ 'Parquet crawler → Parquet catalog', '2021-08-10T18:22:20.891+05:30', '2021-08-10T18:22:57.984+05:30' ],
];
timings.forEach(data => {
const start = moment(data[1]);
const end = moment(data[2]);
console.log(`${data[0]}\t${end.diff(start, 'seconds', true)}`);
})
const processStart = moment(timings[0][1]);
const processEnd = moment(timings[timings.length - 1][2]);
const totalTime = processEnd.diff(processStart, 'seconds', true);
console.log(`\nTotal time: ${totalTime} seconds or ${parseInt(totalTime / 60)} min ${totalTime % 60} seconds`)