summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolargo <nicolas@nicolargo.com>2015-01-27 13:57:08 +0100
committerNicolargo <nicolas@nicolargo.com>2015-01-27 13:57:08 +0100
commit965922cc877673f6d67b70ff44fba6e7fa239de8 (patch)
tree457485f4e8dab687161759b8f4a6d70f3b2ed32c
parent82ce5e29f21ad5e06d062d4c075d8d6dc4258706 (diff)
Try/catch for containers CPU and MEM stats
-rw-r--r--glances/plugins/glances_docker.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/glances/plugins/glances_docker.py b/glances/plugins/glances_docker.py
index b4ce6262..692ac541 100644
--- a/glances/plugins/glances_docker.py
+++ b/glances/plugins/glances_docker.py
@@ -168,13 +168,17 @@ class Plugin(GlancesPlugin):
Output: a dict {'total': 1.49, 'user': 0.65, 'system': 0.84}"""
ret = {}
# Read the stats
- with open('/sys/fs/cgroup/cpuacct/docker/' + id + '/cpuacct.stat', 'r') as f:
- for line in f:
- m = re.search(r"(system|user)\s+(\d+)", line)
- if m:
- ret[m.group(1)] = int(m.group(2))
+ try:
+ with open('/sys/fs/cgroup/cpuacct/docker/' + id + '/cpuacct.stat', 'r') as f:
+ for line in f:
+ m = re.search(r"(system|user)\s+(\d+)", line)
+ if m:
+ ret[m.group(1)] = int(m.group(2))
+ except IOError as e:
+ logger.error("Can not grab container CPU stat ({0})".format(e))
+ return ret
# Get the user ticks
- ticks = self.get_user_ticks()
+ ticks = self.get_user_ticks()
if isinstance(ret["system"], numbers.Number) and isinstance(ret["user"], numbers.Number):
ret["total"] = ret["system"] + ret["user"]
for k in ret.keys():
@@ -188,11 +192,15 @@ class Plugin(GlancesPlugin):
Output: a dict {'rss': 1015808, 'cache': 356352}"""
ret = {}
# Read the stats
- with open('/sys/fs/cgroup/memory/docker/' + id + '/memory.stat', 'r') as f:
- for line in f:
- m = re.search(r"(rss|cache)\s+(\d+)", line)
- if m:
- ret[m.group(1)] = int(m.group(2))
+ try:
+ with open('/sys/fs/cgroup/memory/docker/' + id + '/memory.stat', 'r') as f:
+ for line in f:
+ m = re.search(r"(rss|cache)\s+(\d+)", line)
+ if m:
+ ret[m.group(1)] = int(m.group(2))
+ except IOError as e:
+ logger.error("Can not grab container MEM stat ({0})".format(e))
+ return ret
# Return the stats
return ret