Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/stats_consolidation/stats_consolidation_run
blob: 7e7d0a9235edd42c687b365385bd5bfc402bfbf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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()