mirror of
https://github.com/karl0ss/homepage.git
synced 2025-04-29 12:03:41 +01:00
Fix: sum throughput data for docker stats (#2334)
This commit is contained in:
parent
c9991bc2a2
commit
7f50f6cfaa
@ -1,7 +1,7 @@
|
|||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import { useTranslation } from "next-i18next";
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
import { calculateCPUPercent, calculateUsedMemory } from "./stats-helpers";
|
import { calculateCPUPercent, calculateUsedMemory, calculateThroughput } from "./stats-helpers";
|
||||||
|
|
||||||
import Container from "components/services/widget/container";
|
import Container from "components/services/widget/container";
|
||||||
import Block from "components/services/widget/block";
|
import Block from "components/services/widget/block";
|
||||||
@ -41,7 +41,7 @@ export default function Component({ service }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const network = statsData.stats.networks?.eth0 || statsData.stats.networks?.network;
|
const { rx_bytes, tx_bytes } = calculateThroughput(statsData.stats);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
@ -49,10 +49,10 @@ export default function Component({ service }) {
|
|||||||
{statsData.stats.memory_stats.usage && (
|
{statsData.stats.memory_stats.usage && (
|
||||||
<Block label="docker.mem" value={t("common.bytes", { value: calculateUsedMemory(statsData.stats) })} />
|
<Block label="docker.mem" value={t("common.bytes", { value: calculateUsedMemory(statsData.stats) })} />
|
||||||
)}
|
)}
|
||||||
{network && (
|
{statsData.stats.networks && (
|
||||||
<>
|
<>
|
||||||
<Block label="docker.rx" value={t("common.bytes", { value: network.rx_bytes })} />
|
<Block label="docker.rx" value={t("common.bytes", { value: rx_bytes })} />
|
||||||
<Block label="docker.tx" value={t("common.bytes", { value: network.tx_bytes })} />
|
<Block label="docker.tx" value={t("common.bytes", { value: tx_bytes })} />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</Container>
|
</Container>
|
||||||
|
@ -16,3 +16,18 @@ export function calculateUsedMemory(stats) {
|
|||||||
stats.memory_stats.usage - (stats.memory_stats.total_inactive_file ?? stats.memory_stats.stats?.inactive_file ?? 0)
|
stats.memory_stats.usage - (stats.memory_stats.total_inactive_file ?? stats.memory_stats.stats?.inactive_file ?? 0)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function calculateThroughput(stats) {
|
||||||
|
let rx_bytes = 0;
|
||||||
|
let tx_bytes = 0;
|
||||||
|
if (stats.networks?.network) {
|
||||||
|
rx_bytes = stats.networks?.network.rx_bytes;
|
||||||
|
tx_bytes = stats.networks?.network.tx_bytes;
|
||||||
|
} else if (stats.networks && Array.isArray(Object.values(stats.networks))) {
|
||||||
|
Object.values(stats.networks).forEach((containerInterface) => {
|
||||||
|
rx_bytes += containerInterface.rx_bytes;
|
||||||
|
tx_bytes += containerInterface.tx_bytes;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return { rx_bytes, tx_bytes };
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user