in dashboard/src/main/resources/static/metrics_ui.js [80:104]
function transformOverlapDataToGraphData(chartMetricName) {
return (data) => {
const uniqueDimensions = [...new Set(data.flatMap(x => x.dimensions))];
const chartData = new google.visualization.DataTable();
chartData.addColumn('string', chartMetricName);
uniqueDimensions.forEach(
dimension => chartData.addColumn('number', dimension));
let overlapMap = {};
data.forEach(item => {
if (!overlapMap[item.dimensions[0]]) {
overlapMap[item.dimensions[0]] = {};
}
overlapMap[item.dimensions[0]][item.dimensions[1]] = item.metric;
});
chartData.addRows(
Object.keys(overlapMap).map(
dimension => [dimension].concat(uniqueDimensions.map(
overlapDimension => overlapMap[dimension][overlapDimension])))
);
return chartData;
};
}