in frontend/app/components/kernel_stats/kernel_stats_chart/kernel_stats_chart.ts [46:105]
private getDataTable(): google.visualization.DataTable|null {
if (!this.kernelStatsData) {
return null;
}
if (this.dataTable) {
return this.dataTable;
}
const dataTable = new google.visualization.DataTable(this.kernelStatsData);
const columns: KernelStatsColumn = {
kernelName: 0,
totalDurationUs: 0,
};
for (let i = 0; i < dataTable.getNumberOfColumns(); i++) {
switch (dataTable.getColumnId(i)) {
case 'kernel_name':
columns.kernelName = i;
break;
case 'total_duration_us':
columns.totalDurationUs = i;
break;
default:
break;
}
}
// tslint:disable-next-line:no-any
const dataGroup = new (google.visualization as any)['data']['group'](
dataTable, [columns.kernelName], [
{
'column': columns.totalDurationUs,
// tslint:disable-next-line:no-any
'aggregation': (google.visualization as any)['data']['sum'],
'type': 'number',
},
]);
dataGroup.sort([
{
column: TOTAL_DURATION_US_COLUMN_INDEX,
desc: true,
},
{
column: KERNEL_NAME_COLUMN_INDEX,
asc: true,
},
]);
dataGroup.addColumn({
type: 'string',
role: 'tooltip',
p: {'html': true},
});
this.total = dataGroup.getNumberOfRows();
this.count = Math.min(this.total, 10);
this.dataTable = new google.visualization.DataView(dataGroup).toDataTable();
return this.dataTable;
}