Fixed container stat charts

This commit is contained in:
lllllllillllllillll 2024-02-03 22:00:17 -08:00
parent f94bd91898
commit 8feb88a2a0
2 changed files with 25 additions and 40 deletions

View file

@ -334,46 +334,31 @@ router.get('/modal', async (req, res) => {
});
let dockerStats = {};
setInterval(async () => {
const data = await docker.listContainers({ all: true });
for (const container of data) {
let name = container.Names[0].slice(1);
if (!hidden.includes(name)) {
const stats = await dockerContainerStats(container.Id);
let cpu = Math.round(stats[0].cpuPercent);
let ram = Math.round(stats[0].memPercent);
if (!dockerStats[name]) {
dockerStats[name] = Array(15).fill({ cpu: 0, ram: 0 });
}
dockerStats[name].push({ cpu: cpu, ram: ram });
if (dockerStats[name].length > 15) {
dockerStats[name].shift();
}
}
}
// console.log(dockerStats);
}, 1000);
let stats = {};
router.get('/chart', async (req, res) => {
let name = req.header('hx-trigger-name');
// console.log(dockerStats[name]);
// create an empty array if it doesn't exist
if (!stats[name]) {
stats[name] = { cpuArray: Array(15).fill(0), ramArray: Array(15).fill(0) };
}
// get the stats
const info = await dockerContainerStats(name);
// update the arrays
stats[name].cpuArray.push(Math.round(info[0].cpuPercent));
stats[name].ramArray.push(Math.round(info[0].memPercent));
// slice them down to the last 15 values
stats[name].cpuArray = stats[name].cpuArray.slice(-15);
stats[name].ramArray = stats[name].ramArray.slice(-15);
let chart = `
<script>
${name}chart.appendData([{
data: [100]
}, {
data: [25]
}])
</script>`
<script>
${name}chart.updateSeries([{
data: ${JSON.stringify(stats[name].cpuArray)}
}, {
data: ${JSON.stringify(stats[name].ramArray)}
}])
</script>`
res.send(chart);
});
});

View file

@ -217,10 +217,10 @@
},
series: [{
name: "CPU",
data: [0,0,0,0,0,0,0,0,0,0]
data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}, {
name: "RAM",
data: [0,0,0,0,0,0,0,0,0,0]
data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}],
tooltip: {
enabled: false