Fixed container stat charts
This commit is contained in:
parent
f94bd91898
commit
8feb88a2a0
2 changed files with 25 additions and 40 deletions
61
server.js
61
server.js
|
@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue