diff options
author | mbeierl <mark.beierl@emc.com> | 2015-10-15 10:48:58 -0400 |
---|---|---|
committer | Mark Beierl <mark.beierl@emc.com> | 2015-10-15 19:08:24 +0000 |
commit | e708f56598414929091524ce68a56da602d082e7 (patch) | |
tree | 26867be9b46ce0e47af1dd236d9ba186e3e29291 /storperf/main.py | |
parent | b0f94dcb1f28161d4ab2fb186e4867b2ba473a32 (diff) |
Logging and timestamp
Added logging and fixed issue if fio does not produce the current timestamp
in its output
JIRA: STORPERF-4
Change-Id: Ifd0dbc4e17d984907e63089ebfae1d0e9e749dcc
Signed-off-by: mbeierl <mark.beierl@emc.com>
Diffstat (limited to 'storperf/main.py')
-rw-r--r-- | storperf/main.py | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/storperf/main.py b/storperf/main.py index 4c5a403..f5e5581 100644 --- a/storperf/main.py +++ b/storperf/main.py @@ -7,6 +7,10 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## import getopt +import json +import logging +import logging.config +import os import socket import sys @@ -28,7 +32,29 @@ def event(metric): carbon_metrics = metrics_converter.convert_to_dictionary(metric, prefix) metrics_emitter.transmit_metrics(carbon_metrics) +def setup_logging( + default_path='logging.json', + default_level=logging.INFO, + env_key='LOG_CFG' +): + """Setup logging configuration + + """ + path = default_path + value = os.getenv(env_key, None) + if value: + path = value + if os.path.exists(path): + with open(path, 'rt') as f: + config = json.load(f) + logging.config.dictConfig(config) + else: + logging.basicConfig(level=default_level) + def main(argv=None): + + setup_logging() + if argv is None: argv = sys.argv try: @@ -36,28 +62,32 @@ def main(argv=None): opts = getopt.getopt(argv[1:], "h", ["help"]) except getopt.error, msg: raise Usage(msg) - + except Usage, err: print >> sys.stderr, err.msg print >> sys.stderr, "for help use --help" return 2 - + for o in opts: if o in ("-h", "--help"): print __doc__ return 0 - - simple_args = ['--rw=randread', '--size=32m', + + simple_args = ['--rw=randread', '--size=32m', '--directory=.', - '--iodepth=2', + '--iodepth=2', '--direct=1', '--invalidate=1', '--numjobs=4', '--name=random-read', '--output-format=json', - '--status-interval=3', - '--time_based', '--runtime=60'] + '--status-interval=60', + '--time_based', '--runtime=6000'] invoker = FIOInvoker() invoker.register(event) invoker.execute(simple_args) + + +logging.config.fileConfig('logging.ini') + if __name__ == "__main__": sys.exit(main()) |