]> git.ipfire.org Git - collecty.git/blobdiff - src/collecty/plugins/loadavg.py
loadavg: Localise plugin
[collecty.git] / src / collecty / plugins / loadavg.py
index c14145fed538677ab0366ded2b6b737900d663d6..4125c8e796981f03e14cefb08ed79e7e2ce7b48d 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 ###############################################################################
 #                                                                             #
 # collecty - A system statistics collection daemon for IPFire                 #
 
 import os
 
-import base
+from . import base
 
 from ..i18n import _
 
 class GraphTemplateLoadAvg(base.GraphTemplate):
        name = "loadavg"
 
-       rrd_graph = [
-               "DEF:load1=%(file)s:load1:AVERAGE",
-               "DEF:load5=%(file)s:load5:AVERAGE",
-               "DEF:load15=%(file)s:load15:AVERAGE",
-
-               "AREA:load1#ff0000:%s" % _("Load average  1m"),
-               "VDEF:load1min=load1,MINIMUM",
-               "VDEF:load1max=load1,MAXIMUM",
-               "VDEF:load1avg=load1,AVERAGE",
-               "GPRINT:load1max:%12s\:" % _("Maximum") + " %6.2lf",
-               "GPRINT:load1min:%12s\:" % _("Minimum") + " %6.2lf",
-               "GPRINT:load1avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-               "AREA:load5#ff9900:%s" % _("Load average  5m"),
-               "VDEF:load5min=load5,MINIMUM",
-               "VDEF:load5max=load5,MAXIMUM",
-               "VDEF:load5avg=load5,AVERAGE",
-               "GPRINT:load5max:%12s\:" % _("Maximum") + " %6.2lf",
-               "GPRINT:load5min:%12s\:" % _("Minimum") + " %6.2lf",
-               "GPRINT:load5avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-               "AREA:load15#ffff00:%s" % _("Load average 15m"),
-               "VDEF:load15min=load15,MINIMUM",
-               "VDEF:load15max=load15,MAXIMUM",
-               "VDEF:load15avg=load15,AVERAGE",
-               "GPRINT:load15max:%12s\:" % _("Maximum") + " %6.2lf",
-               "GPRINT:load15min:%12s\:" % _("Minimum") + " %6.2lf",
-               "GPRINT:load15avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-               "LINE:load5#dd8800",
-               "LINE:load1#dd0000",
+       @property
+       def rrd_graph(self):
+               _ = self.locale.translate
+
+               return [
+                       "DEF:load1=%(file)s:load1:AVERAGE",
+                       "DEF:load5=%(file)s:load5:AVERAGE",
+                       "DEF:load15=%(file)s:load15:AVERAGE",
+
+                       "AREA:load1#ff0000:%s" % _("Load average  1m"),
+                       "VDEF:load1min=load1,MINIMUM",
+                       "VDEF:load1max=load1,MAXIMUM",
+                       "VDEF:load1avg=load1,AVERAGE",
+                       "GPRINT:load1max:%12s\:" % _("Maximum") + " %6.2lf",
+                       "GPRINT:load1min:%12s\:" % _("Minimum") + " %6.2lf",
+                       "GPRINT:load1avg:%12s\:" % _("Average") + " %6.2lf\\n",
+
+                       "AREA:load5#ff9900:%s" % _("Load average  5m"),
+                       "VDEF:load5min=load5,MINIMUM",
+                       "VDEF:load5max=load5,MAXIMUM",
+                       "VDEF:load5avg=load5,AVERAGE",
+                       "GPRINT:load5max:%12s\:" % _("Maximum") + " %6.2lf",
+                       "GPRINT:load5min:%12s\:" % _("Minimum") + " %6.2lf",
+                       "GPRINT:load5avg:%12s\:" % _("Average") + " %6.2lf\\n",
+
+                       "AREA:load15#ffff00:%s" % _("Load average 15m"),
+                       "VDEF:load15min=load15,MINIMUM",
+                       "VDEF:load15max=load15,MAXIMUM",
+                       "VDEF:load15avg=load15,AVERAGE",
+                       "GPRINT:load15max:%12s\:" % _("Maximum") + " %6.2lf",
+                       "GPRINT:load15min:%12s\:" % _("Minimum") + " %6.2lf",
+                       "GPRINT:load15avg:%12s\:" % _("Average") + " %6.2lf\\n",
+
+                       "LINE:load5#dd8800",
+                       "LINE:load1#dd0000",
+               ]
+
+       lower_limit = 0
+
+       @property
+       def graph_title(self):
+               _ = self.locale.translate
+               return _("Load average")
+
+       @property
+       def graph_vertical_label(self):
+               _ = self.locale.translate
+               return _("Load")
+
+
+class LoadAvgObject(base.Object):
+       rrd_schema = [
+               "DS:load1:GAUGE:0:U",
+               "DS:load5:GAUGE:0:U",
+               "DS:load15:GAUGE:0:U",
        ]
 
-       rrd_graph_args = [
-               "--title", _("Load average"),
-               "--vertical-label", _("Load"),
+       @property
+       def id(self):
+               return "default"
 
-               "--lower-limit", "0", "--rigid",
-       ]
+       def collect(self):
+               return os.getloadavg()
 
 
 class LoadAvgPlugin(base.Plugin):
        name = "loadavg"
-       description = "Load Average Data Source"
-
-       templates = [GraphTemplateLoadAvg,]
-
-       rrd_schema = [
-               "DS:load1:GAUGE:0:U",
-               "DS:load5:GAUGE:0:U",
-               "DS:load15:GAUGE:0:U",
-       ]
+       description = "Load Average Plugin"
 
-       @classmethod
-       def autocreate(cls, collecty, **kwargs):
-               return cls(collecty, **kwargs)
+       templates = [GraphTemplateLoadAvg]
 
-       def read(self):
-               return ":".join(["%.10f" % l for l in os.getloadavg()])
+       @property
+       def objects(self):
+               return [LoadAvgObject(self)]