in lib/perf-top/rca/util/temperature-profile/generate-data.js [72:156]
function getData(rawData, dimension, graphParams, type) {
var jsonData = {};
try {
jsonData = JSON.parse(rawData).AllTemperatureDimensions[0].NodeLevelDimensionalSummary;
if (jsonData.length === 0 || jsonData === undefined) {
console.error(`Failed to retrieve data for metrics. HTTP(S) response was:
${rawData}`);
return {};
}
if (graphParams.split(",").length > 1) {
console.error(`Too many graph parameters to plot`);
return {};
}
} catch (e) {
console.error(`HTTP(S) Response for per-node data was not in JSON format:
${rawData}`);
return {};
}
var nodeDimensions = [];
var nodeData = [];
var nodeTimestamp;
var allData = {};
for (var i = 0; i < jsonData.length; i++) {
var node = jsonData[i];
if (!("dimension" in node)) {
console.error(`Data returned was in an unexpected format:
${JSON.stringify(node)}`);
continue;
}
if (!dimension.includes(node.dimension)) continue;
nodeTimestamp = node.timestamp;
var zoneSummary = node.NodeLevelZoneSummary;
if (type === "lines") {
var field = node.dimension + " - " + graphParams;
nodeDimensions.push(field);
if (node.hasOwnProperty(graphParams)) {
nodeData.push(helper.parseNumberData(node[graphParams]));
} else {
nodeData.push("null");
}
} else if (type === "tables") {
for (var j = 0; j < zoneSummary.length; j++) {
if (zoneSummary[j].zone === graphParams) {
var target = zoneSummary[j];
if (target.all_shards.length > 0) {
nodeDimensions.push('index_name');
nodeDimensions.push("shard_id");
target.all_shards[0].temperature.forEach(function (field) {
nodeDimensions.push(field.dimension);
});
for (var k = 0; k < target.all_shards.length; k++) {
var tmp = target.all_shards[k];
var tmpData = [];
tmpData.push(tmp.index_name);
tmpData.push(tmp.shard_id);
tmp.temperature.forEach(function (data) {
tmpData.push(helper.parseNumberData(data.value));
});
nodeData.push(tmpData);
}
}
break;
}
}
} else if (type == "donuts") {
for (var j = 0; j < zoneSummary.length; j++) {
nodeDimensions.push(zoneSummary[j].zone);
nodeData.push(helper.parseNumberData(zoneSummary[j].all_shards.length));
}
}
break;
}
try {
allData = {
fields: nodeDimensions,
data: nodeData,
timestamp: nodeTimestamp,
};
} catch (e) {
console.error(`error find: ${e}`);
}
return allData;
}