Fix add-on memory calculation (#3739)

Docker versions newer than 19.03 calculate memory usage sligthly
different compared to previous versions. It seems the field
"total_inactive_file" was not available in 19.03, so it can be used
as indicator.

See: https://docs.docker.com/engine/reference/commandline/stats/#description
This commit is contained in:
Stefan Agner 2022-07-14 11:59:34 +02:00 committed by GitHub
parent 8f84eaa096
commit 14bc771ba9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 3 deletions

View File

@ -14,9 +14,12 @@ class DockerStats:
self._blk_write = 0
try:
self._memory_usage = (
stats["memory_stats"]["usage"] - stats["memory_stats"]["stats"]["cache"]
)
if "total_inactive_file" in stats["memory_stats"]["stats"]:
cache = stats["memory_stats"]["stats"]["total_inactive_file"]
else:
cache = stats["memory_stats"]["stats"]["cache"]
self._memory_usage = stats["memory_stats"]["usage"] - cache
self._memory_limit = stats["memory_stats"]["limit"]
except KeyError:
self._memory_usage = 0