diff options
Diffstat (limited to 'stats_consolidation/stats_consolidation_run')
-rwxr-xr-x | stats_consolidation/stats_consolidation_run | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/stats_consolidation/stats_consolidation_run b/stats_consolidation/stats_consolidation_run new file mode 100755 index 0000000..7e7d0a9 --- /dev/null +++ b/stats_consolidation/stats_consolidation_run @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +# Copyright (C) 2012, Gustavo Duarte +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import argparse +import ConfigParser +import logging +import logging.handlers +import sys, os + +from stats_consolidation.db import * +from stats_consolidation.rrd_files import * +from stats_consolidation.consolidation import * + + +parser = argparse.ArgumentParser() +parser.add_argument('--config_file', required=False) + +args = parser.parse_args() + + +_LOG_FORMAT='[%(asctime)s]-%(levelname)s-\'%(name)s\': %(message)s' +_LOG_LEVEL = { 'debug': logging.DEBUG, + 'info': logging.INFO, + 'warning': logging.WARNING, + 'error': logging.ERROR, + 'critical': logging.CRITICAL} + +log=None + +def main(): + + config = ConfigParser.ConfigParser() + if (args.config_file == None): + config_file = "/etc/stats-consolidation.conf" + else: + config_file = args.config_file + + config.read(config_file) + + log_path = config.get('main', 'log_path') + log_level = config.get('main', 'log_level') + db_name = config.get('main', 'db_name') + db_user = config.get('main', 'db_user') + db_pass = config.get('main', 'db_pass') + rrd_path = config.get('main', 'rrd_path') + LOG_FILENAME = os.path.join(log_path,'stats-consolidation.log') + + # Add the log message handler to the logger + handler = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=10000000, backupCount=5) + log = logging.getLogger("stats-consolidation") + log.setLevel(_LOG_LEVEL[log_level]) + log.addHandler(handler) + + log.info('**************************************') + log.info(' Starting consolidation ') + log.info('**************************************') + + try: + db = DB_Stats (db_name, db_user, db_pass) + db.create() + except Exception as e: + log.warning('Creating DB: %s', str(e)) + + + try: + con = Consolidation(rrd_path, db) + con.process_rrds() + db.close() + + log.info('**************************************') + log.info(' Finish consolidation ') + log.info('**************************************') + except Exception as e: + log.warning('Processing rrd file: %s', str(e)) + + + +if __name__ == '__main__': + main() |