Beispiel #1
0
 def __init__(self, raw_stats, time):
     self.time = time
     m = self.both.match(raw_stats).groupdict()
     for key, value in m.iteritems():
         self.__dict__[key] = float(value)
     dt = datetime.timedelta(seconds=self.uptime)
     self.uptime = PolishPrettyTimedelta(dt)
Beispiel #2
0
class Stats(object):
    get = """
          # `get`
          (?P<load_1>\d+\.\d+)\s
          (?P<load_5>\d+\.\d+)\s
          (?P<load_15>\d+\.\d+)\s
          (?P<executing_entities>\d+)/
          (?P<existing_entities>\d+)\s
          (?P<last_pid>\d+)\s
          (?P<uptime>\d+\.\d+)\s
          """
    mem = """
          # `mem`
          (?P<mem_total>\d+)\s
          (?P<mem_used>\d+)\s
          (?P<mem_free>\d+)\s
          (?P<shared>\d+)\s
          (?P<buffers>\d+)\s
          (?P<cached>\d+)\s
          (?P<cache_used>\d+)\s
          (?P<cache_free>\d+)\s
          (?P<swap_total>\d+)\s
          (?P<swap_used>\d+)\s
          (?P<swap_free>\d+)
          """
    both = re.compile(get + mem, re.VERBOSE)

    def __init__(self, raw_stats, time):
        self.time = time
        m = self.both.match(raw_stats).groupdict()
        for key, value in m.iteritems():
            self.__dict__[key] = float(value)
        dt = datetime.timedelta(seconds=self.uptime)
        self.uptime = PolishPrettyTimedelta(dt)

    @property
    def mem_percentage(self):
        return self.cache_used / self.mem_total * 100

    @property
    def pretty_uptime(self):
        return self.uptime.toWords()

    def formatShort(self):
        return "%s/%s/%d%%" % (self.load_1, self.uptime, self.mem_percentage)

    def formatLong(self):
        return "%s %s %s | %d/%d | %s | %d/%dMB (%d%%)" % (
            self.load_1,
            self.load_5,
            self.load_15,
            self.executing_entities,
            self.existing_entities,
            self.pretty_uptime,
            self.cache_used / 1024,
            self.mem_total / 1024,
            self.mem_percentage,
        )