Ejemplo n.º 1
0
    def __init__(self, logger, cost_controller, config_parser,
                 config_file_path, manager_host, manager_port, process_state,
                 ganglia_rrd_dir):
        self.cost_controller = cost_controller
        self.config_parser = config_parser
        self.manager_host = manager_host
        self.manager_port = manager_port
        self.logger = logger
        self.process_state = process_state
        self.ganglia_rrd_dir = ganglia_rrd_dir
        self.last_collect_time = time()

        self.stat_utils = StatUtils()

        try:
            self.config_parser.read(config_file_path)
        except:
            print >> sys.stderr, 'Failed to read configuration file'
            sys.exit(1)

        #initialize a memcache client
        memcache_addr = config_parser.get('manager', 'MEMCACHE_ADDR')

        if memcache_addr == '':
            print >> sys.stderr, 'Failed to find memcache address in the config file'
            sys.exit(1)

        self.memcache = memcache.Client([memcache_addr])
        self.perf_info = ServicePerformance()
        self._performance_info_set(self.perf_info)

        self.monitoring_metrics_web = [
            'web_request_rate', 'web_response_time', 'cpu_user', 'boottime'
        ]
        self.monitoring_metrics_backend = [
            'php_request_rate', 'php_response_time', 'cpu_user', 'cpu_system',
            'cpu_num', 'mem_total', 'boottime'
        ]
        self.monitoring_metrics_proxy = ['web_request_rate_lb', 'web_response_time_lb', \
                                       'php_request_rate_lb', 'php_response_time_lb', 'cpu_user', 'boottime']