diff --git a/src/widgets/docker/component.jsx b/src/widgets/docker/component.jsx index c88ef8f6a..1b36592bb 100644 --- a/src/widgets/docker/component.jsx +++ b/src/widgets/docker/component.jsx @@ -1,7 +1,7 @@ import useSWR from "swr"; 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 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 ( @@ -49,10 +49,10 @@ export default function Component({ service }) { {statsData.stats.memory_stats.usage && ( )} - {network && ( + {statsData.stats.networks && ( <> - - + + )} diff --git a/src/widgets/docker/stats-helpers.js b/src/widgets/docker/stats-helpers.js index 3e184e8a0..390c832ab 100644 --- a/src/widgets/docker/stats-helpers.js +++ b/src/widgets/docker/stats-helpers.js @@ -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) ); } + +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 }; +}