From 869fe1d5341f37fedc596867d6b1c4b70d0d9f63 Mon Sep 17 00:00:00 2001 From: Florent Benoit Date: Fri, 6 Jan 2023 14:40:46 +0100 Subject: [PATCH] chore: fix random appear/disappear of statistics box also add values of memory of CPU Fixes https://github.com/containers/podman-desktop/issues/495 Fixes https://github.com/containers/podman-desktop/issues/505 Change-Id: I0b1459d73658190a98636218be18fae38d8818b9 Signed-off-by: Florent Benoit --- .../lib/container/ContainerStatistics.svelte | 47 ++++++++++++++----- .../src/lib/container/container-utils.spec.ts | 2 +- .../src/lib/container/container-utils.ts | 6 ++- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/packages/renderer/src/lib/container/ContainerStatistics.svelte b/packages/renderer/src/lib/container/ContainerStatistics.svelte index 8a31d42471ff5..be154f36de807 100644 --- a/packages/renderer/src/lib/container/ContainerStatistics.svelte +++ b/packages/renderer/src/lib/container/ContainerStatistics.svelte @@ -29,8 +29,8 @@ $: memoryColor = : RED_COLOR; // percentage -let cpuUsagePercentage: number; -let memoryUsagePercentage: number; +let cpuUsagePercentage: number = -1; +let memoryUsagePercentage: number = -1; let usedMemory; // id to cancel the streaming @@ -41,7 +41,9 @@ let firstIteration = true; // title to use on let cpuUsagePercentageTitle; +let cpuUsageTitle; let memoryUsagePercentageTitle; +let memoryUsageTitle; async function updateStatistics(containerStats: ContainerStatsInfo) { // we need enough data to compute the CPU usage @@ -54,7 +56,8 @@ async function updateStatistics(containerStats: ContainerStatsInfo) { usedMemory = containerStats.memory_stats.usage - (containerStats.memory_stats.stats?.cache || 0); const availableMemory = containerStats.memory_stats.limit; memoryUsagePercentage = (usedMemory / availableMemory) * 100.0; - memoryUsagePercentageTitle = containerUtils.getMemoryUsageTitle(memoryUsagePercentage, usedMemory); + memoryUsagePercentageTitle = containerUtils.getMemoryPercentageUsageTitle(memoryUsagePercentage, usedMemory); + memoryUsageTitle = containerUtils.getMemoryUsageTitle(usedMemory); const cpuDelta = containerStats.cpu_stats.cpu_usage.total_usage - containerStats.precpu_stats.cpu_usage.total_usage; const systemCpuDelta = @@ -62,7 +65,8 @@ async function updateStatistics(containerStats: ContainerStatsInfo) { const numberCpus = containerStats.cpu_stats.online_cpus || containerStats.cpu_stats.cpu_usage?.percpu_usage?.length || 1.0; cpuUsagePercentage = (cpuDelta / systemCpuDelta) * numberCpus * 100.0; - cpuUsagePercentageTitle = `${cpuUsagePercentage.toFixed(2)}%`; + cpuUsagePercentageTitle = `${cpuUsagePercentage.toFixed(2)}% of ${numberCpus}CPUs`; + cpuUsageTitle = `${cpuUsagePercentage.toFixed(2)}%`; } onMount(async () => { @@ -81,23 +85,44 @@ onDestroy(async () => { }); -{#if container.state === 'RUNNING' && memoryUsagePercentage && cpuUsagePercentage} -
+{#if container.state === 'RUNNING'} +
MEMORY CPU - + {memoryUsagePercentageTitle}; - {memoryUsagePercentageTitle} + {#if memoryUsagePercentage >= 0} + {memoryUsagePercentageTitle} + {/if} {cpuUsagePercentageTitle}; - {cpuUsagePercentageTitle} + + {#if cpuUsagePercentage >= 0} + {cpuUsagePercentageTitle} + {/if} + {#if memoryUsagePercentage === -1} + ; + Initializing... + ; + Initializing... + {/if} + + + + + {#if memoryUsageTitle} + {memoryUsageTitle} + {/if} + {#if cpuUsageTitle} + {cpuUsageTitle} + {/if}
diff --git a/packages/renderer/src/lib/container/container-utils.spec.ts b/packages/renderer/src/lib/container/container-utils.spec.ts index 0e2844919de41..7d5934a45c962 100644 --- a/packages/renderer/src/lib/container/container-utils.spec.ts +++ b/packages/renderer/src/lib/container/container-utils.spec.ts @@ -27,6 +27,6 @@ beforeEach(() => { }); test('should expect valid memory usage', async () => { - const size = containerUtils.getMemoryUsageTitle(4, 1000000); + const size = containerUtils.getMemoryPercentageUsageTitle(4, 1000000); expect(size).toBe('4.00% (1 MB)'); }); diff --git a/packages/renderer/src/lib/container/container-utils.ts b/packages/renderer/src/lib/container/container-utils.ts index 22ef4cb9a7ef3..c38a5b412b890 100644 --- a/packages/renderer/src/lib/container/container-utils.ts +++ b/packages/renderer/src/lib/container/container-utils.ts @@ -178,7 +178,11 @@ export class ContainerUtils { return Array.from(groups.values()); } - getMemoryUsageTitle(memoryUsagePercentage: number, usedMemory: number): string { + getMemoryPercentageUsageTitle(memoryUsagePercentage: number, usedMemory: number): string { return `${memoryUsagePercentage.toFixed(2)}% (${filesize(usedMemory)})`; } + + getMemoryUsageTitle(usedMemory: number): string { + return `${filesize(usedMemory)}`; + } }