rename parsers, better journald integration
[logparse.git] / logparse / parsers / mem.py
index b6f8f8dbef8e0b2ce1281cd5e0da69395b198b08..2a831d2a52489b0d016b83fcc6469f8d645f3582 100644 (file)
@@ -1,50 +1,46 @@
-#
-#   mem.py
-#
-#   Get instantaneous memory statistics (installed, total, free, available)
-#
+"""
+Get instantaneous memory statistics (installed, total, free, available)
+"""
 
 import re
 
-from ..formatting import *
-from .. import config
-
-import logging
-logger = logging.getLogger(__name__)
-
-def parse_log():
-
-    logger.debug("Starting memory section")
-    section = Section("memory")
-    
-    table = Table()
-
-    ram_b = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')
-    table.add_row(Row([Column("Installed"), Column(parsesize(ram_b))]))
-
-    raw_mem = util.readlog(config.prefs['logs']['meminfo'])
-    total_regex = re.compile("(MemTotal:\s*| kB)+")
-    free_regex = re.compile("MemFree:\s*")
-
-    for line in raw_mem.splitlines():
-        matches = re.findall("^Mem(\w+):\s*(\d*)\s*kB$", line)
-        if len(matches) > 0:
-            logger.debug("Detected {0} memory of {1} kB".format(matches[0][0].lower(), matches[0][1]))
-            table.add_row(Row([Column(matches[0][0]), Column(parsesize(float(matches[0][1])*1000))]))
-#        if "Mem" in line:
-#            total = line_regex.sub("", line, 1)
-#            processor = proc_regex.sub("", processor)
-#            if not processor in proc_data.items:
-#                proc_data.items.append(processor)
-#            else:
-#                logger.debug("Found duplicate entry (perhaps multiple cores?) for {0}".format(processor))
-#    if len(proc_data.items) > 0:
-#        section.append_data(proc_data)
-#    else:
-#        logger.warning("Failed to find processor data")
-
-    table.align_column(0, "right")
-    section.append_table(table)
-
-    logger.info("Finished memory section")
-    return section
+from logparse.formatting import *
+from logparse import config
+from logparse.load_parsers import Parser
+
+class Mem(Parser):
+
+    def __init__(self):
+        super().__init__()
+        self.name = "mem"
+        self.info = "Get instantaneous memory statistics "
+                "(installed, total, free, available)"
+
+    def parse_log(self):
+
+        logger.debug("Starting memory section")
+        section = Section("memory")
+        
+        table = Table()
+
+        ram_b = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')
+        table.add_row(Row([Column("Installed"), Column(parsesize(ram_b))]))
+
+        raw_mem = util.readlog(config.prefs.get("logs", "meminfo"))
+        line_regex = re.compile("^Mem(\w+):\s*(\d*)\s*kB$")
+
+        for line in raw_mem.splitlines():
+
+            matches = line_regex.findall(line)
+
+            if len(matches) > 0:
+                logger.debug("Detected {0} memory of {1} kB".
+                        format(matches[0][0].lower(), matches[0][1]))
+                table.add_row(Row([Column(matches[0][0]), 
+                    Column(parsesize(float(matches[0][1])*1000))]))
+
+        table.align_column(0, "right")
+        section.append_table(table)
+
+        logger.info("Finished memory section")
+        return section