From 9a605c2a68e7fb3547188b206980118ef7b7fad1 Mon Sep 17 00:00:00 2001 From: Ilya Shakhat Date: Fri, 26 Feb 2016 16:33:40 +0300 Subject: [PATCH] Add atop module to collect system metrics --- performa/engine/ansible_runner.py | 1 + performa/engine/player.py | 3 +- performa/modules/atop.py | 240 ++++++++++++++++++++++++++++ performa/scenarios/db/sysbench.yaml | 16 ++ performa/tests/atop_sample.txt | 50 ++++++ performa/tests/test_atop.py | 90 +++++++++++ 6 files changed, 399 insertions(+), 1 deletion(-) create mode 100644 performa/modules/atop.py create mode 100644 performa/tests/atop_sample.txt create mode 100644 performa/tests/test_atop.py diff --git a/performa/engine/ansible_runner.py b/performa/engine/ansible_runner.py index 76b1eed..e6c90ae 100644 --- a/performa/engine/ansible_runner.py +++ b/performa/engine/ansible_runner.py @@ -118,6 +118,7 @@ def _run(play_source, host_list): if tqm is not None: tqm.cleanup() + LOG.debug('Execution result: %s', storage) return storage diff --git a/performa/engine/player.py b/performa/engine/player.py index 04f0cd2..d5a561a 100644 --- a/performa/engine/player.py +++ b/performa/engine/player.py @@ -75,7 +75,8 @@ def play_execution(execution_playbook): if isinstance(v, list) or isinstance(v, dict): del record[k] - del record['stdout'] + if 'stdout' in record: + del record['stdout'] LOG.debug('Record: %s', record) records.append(record) diff --git a/performa/modules/atop.py b/performa/modules/atop.py new file mode 100644 index 0000000..3ea2915 --- /dev/null +++ b/performa/modules/atop.py @@ -0,0 +1,240 @@ +#!/usr/bin/python + +import re + +ATOP_FILE_NAME = '/tmp/performa.atop' +UNIQUE_NAME = 'performa_atop' + +PREFIX_PATTERN = ( + '(?P\S+)\s+' + '(?P\d+)\s+' + '(?P\S+)\s+' + '(?P