fix: memory display, closes #33

Memory usage calculation now uses correct methodology
This commit is contained in:
Jack Wills
2024-02-12 17:40:28 +00:00
parent 616338b710
commit a182d40a74
+14 -3
View File
@@ -1,7 +1,7 @@
use bollard::{
container::{
ListContainersOptions, LogsOptions, RemoveContainerOptions, StartContainerOptions, Stats,
StatsOptions,
ListContainersOptions, LogsOptions, MemoryStatsStats, RemoveContainerOptions,
StartContainerOptions, Stats, StatsOptions,
},
service::ContainerSummary,
Docker,
@@ -121,8 +121,19 @@ impl DockerData {
.take(1);
while let Some(Ok(stats)) = stream.next().await {
// Memory stats are only collected if the container is alive - is this the behaviour we want?
let mem_stat = if state.is_alive() {
Some(stats.memory_stats.usage.unwrap_or_default())
let mem_cache = stats.memory_stats.stats.map_or(0, |i| match i {
MemoryStatsStats::V1(x) => x.inactive_file,
MemoryStatsStats::V2(x) => x.inactive_file,
});
Some(
stats
.memory_stats
.usage
.unwrap_or_default()
.saturating_sub(mem_cache),
)
} else {
None
};