in lib/perf-top/metrics/util/generate-data.js [168:210]
function getDataPerNode (rawData) {
var jsonData = {};
try {
jsonData = JSON.parse(rawData);
if (Object.keys(jsonData).length === 1 && 'error' in jsonData) {
console.error(`Failed to retrieve data for metrics. HTTP(S) response was:
${rawData}`);
return {};
}
} catch (e) {
console.error(`HTTP(S) Response for per-node data was not in JSON format:
${rawData}`);
return {};
}
var allData = {};
for (var nodeName in jsonData) {
var nodeDimensions = [];
var nodeData = [];
if (!('data' in jsonData[nodeName])) {
console.error(`Data returned for nodeName=${nodeName} was in an unexpected format:
${JSON.stringify(jsonData[nodeName])}`);
continue;
}
if (!('fields' in jsonData[nodeName].data) && !('records' in jsonData[nodeName].data)) {
console.error(`Data returned for nodeName=${nodeName} was in an unexpected format:
${JSON.stringify(jsonData[nodeName])}`);
continue;
}
jsonData[nodeName].data.fields.forEach(function (field) {
if (field.name === null) {
field.name = 'N/A';
}
nodeDimensions.push(field.name);
});
jsonData[nodeName].data.records.forEach(function (record) {
nodeData.push(record.map(helper.parseNumberData));
});
allData[nodeName] = { fields: nodeDimensions, data: nodeData, timestamp: jsonData[nodeName].timestamp };
}
return allData;
}