function removeStaleData()

in lib/perf-top/metrics/util/generate-data.js [288:309]


function removeStaleData(metricData, dataTimestamp) {
  for (var nodeName in metricData) {
    // Initialize or update `dataTimestamp`
    if (nodeName in dataTimestamp) {
      if (metricData[nodeName].timestamp > dataTimestamp[nodeName].timestamp) {
        dataTimestamp[nodeName] = { counter: 0, timestamp: metricData[nodeName].timestamp};
      } else {
        dataTimestamp[nodeName].counter++;
      }
    } else {
      dataTimestamp[nodeName] = { counter: 0, timestamp: metricData[nodeName].timestamp};
    }
    // Remove data that has not been updated for 3 iterations
    if (dataTimestamp[nodeName].counter >= 3) {
      console.error(`Data for node '${nodeName}' has not been updated for ` +
        `${dataTimestamp[nodeName].counter} iterations.` +
        ` Last updated timestamp was ${dataTimestamp[nodeName].timestamp}.` +
        ` Removing the data from the dashboard.`);
      delete metricData[nodeName];
    }
  }
}