diff options
author | Nicolargo <nicolas@nicolargo.com> | 2015-01-27 13:57:08 +0100 |
---|---|---|
committer | Nicolargo <nicolas@nicolargo.com> | 2015-01-27 13:57:08 +0100 |
commit | 965922cc877673f6d67b70ff44fba6e7fa239de8 (patch) | |
tree | 457485f4e8dab687161759b8f4a6d70f3b2ed32c | |
parent | 82ce5e29f21ad5e06d062d4c075d8d6dc4258706 (diff) |
Try/catch for containers CPU and MEM stats
-rw-r--r-- | glances/plugins/glances_docker.py | 30 |
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 |