(self)
return dict_stats
Execute passenger-memory-stats, parse its output, return dictionary with
        stats.
Execute passenger-memory-stats, parse its output, return dictionary with
        stats.
Execute passenger - memory - stats parse its output return dictionary with stats .
def get_passenger_memory_stats(self):
        """
        Execute passenger-memory-stats, parse its output, return dictionary with
        stats.
        """
        command = [self.config["passenger_memory_stats_bin"]]
        if str_to_bool(self.config["use_sudo"]):
            command.insert(0, self.config["sudo_cmd"])

        try:
            proc1 = subprocess.Popen(command, stdout=subprocess.PIPE)
            (std_out, std_err) = proc1.communicate()
        except OSError:
            return {}

        if std_out is None:
            return {}

        dict_stats = {
            "apache_procs": [],
            "nginx_procs": [],
            "passenger_procs": [],
            "apache_mem_total": 0.0,
            "nginx_mem_total": 0.0,
            "passenger_mem_total": 0.0,
        }
        #
        re_colour = re.compile("\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]")
        re_digit = re.compile("^\d")
        #
        apache_flag = 0
        nginx_flag = 0
        passenger_flag = 0
        for raw_line in std_out.splitlines():
            line = re_colour.sub("", raw_line)
            if "Apache processes" in line:
                apache_flag = 1
            elif "Nginx processes" in line:
                nginx_flag = 1
            elif "Passenger processes" in line:
                passenger_flag = 1
            elif re_digit.match(line):
                # If line starts with digit, then store PID and memory consumed
                line_splitted = line.split()
                if apache_flag == 1:
                    dict_stats["apache_procs"].append(line_splitted[0])
                    dict_stats["apache_mem_total"] += float(line_splitted[4])
                elif nginx_flag == 1:
                    dict_stats["nginx_procs"].append(line_splitted[0])
                    dict_stats["nginx_mem_total"] += float(line_splitted[4])
                elif passenger_flag == 1:
                    dict_stats["passenger_procs"].append(line_splitted[0])
                    dict_stats["passenger_mem_total"] += float(line_splitted[3])

            elif "Processes:" in line:
                passenger_flag = 0
                apache_flag = 0
                nginx_flag = 0

        return dict_stats
def get_passenger_memory_stats ( self ) : command = [ self . config [ "passenger_memory_stats_bin" ] ] if str_to_bool ( self . config [ "use_sudo" ] ) : command . insert ( 0 , self . config [ "sudo_cmd" ] ) try : proc1 = subprocess . Popen ( command , stdout = subprocess . PIPE ) ( std_out , std_err ) = proc1 . communicate ( ) except OSError : return { } if std_out is None : return { } dict_stats = { "apache_procs" : [ ] , "nginx_procs" : [ ] , "passenger_procs" : [ ] , "apache_mem_total" : 0.0 , "nginx_mem_total" : 0.0 , "passenger_mem_total" : 0.0 , } # re_colour = re . compile ( "\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]" ) re_digit = re . compile ( "^\d" ) # apache_flag = 0 nginx_flag = 0 passenger_flag = 0 for raw_line in std_out . splitlines ( ) : line = re_colour . sub ( "" , raw_line ) if "Apache processes" in line : apache_flag = 1 elif "Nginx processes" in line : nginx_flag = 1 elif "Passenger processes" in line : passenger_flag = 1 elif re_digit . match ( line ) : # If line starts with digit, then store PID and memory consumed line_splitted = line . split ( ) if apache_flag == 1 : dict_stats [ "apache_procs" ] . append ( line_splitted [ 0 ] ) dict_stats [ "apache_mem_total" ] += float ( line_splitted [ 4 ] ) elif nginx_flag == 1 : dict_stats [ "nginx_procs" ] . append ( line_splitted [ 0 ] ) dict_stats [ "nginx_mem_total" ] += float ( line_splitted [ 4 ] ) elif passenger_flag == 1 : dict_stats [ "passenger_procs" ] . append ( line_splitted [ 0 ] ) dict_stats [ "passenger_mem_total" ] += float ( line_splitted [ 3 ] ) elif "Processes:" in line : passenger_flag = 0 apache_flag = 0 nginx_flag = 0 return dict_stats