diff --git a/monitor-service/nethogs-monitor-dashboard-template.html b/monitor-service/nethogs-monitor-dashboard-template.html index 707d414..58cf8d2 100644 --- a/monitor-service/nethogs-monitor-dashboard-template.html +++ b/monitor-service/nethogs-monitor-dashboard-template.html @@ -658,21 +658,31 @@ JSON_DATA_PLACEHOLDER const filteredData = getFilteredData(); // Group by process - const processData = {}; + const processDataMap = {}; filteredData.forEach(item => { - if (!processData[item.process_name]) { - processData[item.process_name] = { + if (!processDataMap[item.process_name]) { + processDataMap[item.process_name] = { download: 0, upload: 0 }; } - processData[item.process_name].download += item.bytes_received; - processData[item.process_name].upload += item.bytes_sent; + processDataMap[item.process_name].download += item.bytes_received; + processDataMap[item.process_name].upload += item.bytes_sent; }); + var processData = []; + Object.keys(processDataMap).forEach(key => { + processData.push({ + process_name: key, + download: processDataMap[key].download, + upload: processDataMap[key].upload + }); + }); + processData = processData.sort((a, b) => (b.download + b.upload) - (a.download + a.upload) ); + const processDataTop = processData.slice(0, 15); // Top 15 - const labels = Object.keys(processData).slice(0, 15); // Top 15 - const downloadData = labels.map(label => processData[label].download); - const uploadData = labels.map(label => processData[label].upload); + const labels = processDataTop.map(item => item.process_name); + const downloadData = processDataTop.map(item => item.download); + const uploadData = processDataTop.map(item => item.upload); if (charts.appTraffic) charts.appTraffic.destroy();