]> git.ipfire.org Git - collecty.git/blobdiff - src/collecty/plugins/loadavg.py
Introduce a colour scheme and fix design of the graphs
[collecty.git] / src / collecty / plugins / loadavg.py
index 8ac398ad9bcdd0e3900412d1a8f71b079c753a77..f3e249a920c508d24beeb51bb69e6234bc3ee941 100644 (file)
@@ -23,6 +23,7 @@ import os
 
 from . import base
 
+from ..colours import *
 from ..i18n import _
 
 class GraphTemplateLoadAvg(base.GraphTemplate):
@@ -32,38 +33,37 @@ class GraphTemplateLoadAvg(base.GraphTemplate):
        def rrd_graph(self):
                _ = self.locale.translate
 
-               return [
-                       "AREA:load1#ff0000:%s" % _("Load average  1m"),
-                       "GPRINT:load1_max:%12s\:" % _("Maximum") + " %6.2lf",
-                       "GPRINT:load1_min:%12s\:" % _("Minimum") + " %6.2lf",
-                       "GPRINT:load1_avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-                       "AREA:load5#ff9900:%s" % _("Load average  5m"),
-                       "GPRINT:load5_max:%12s\:" % _("Maximum") + " %6.2lf",
-                       "GPRINT:load5_min:%12s\:" % _("Minimum") + " %6.2lf",
-                       "GPRINT:load5_avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-                       "AREA:load15#ffff00:%s" % _("Load average 15m"),
-                       "GPRINT:load15_max:%12s\:" % _("Maximum") + " %6.2lf",
-                       "GPRINT:load15_min:%12s\:" % _("Minimum") + " %6.2lf",
-                       "GPRINT:load15_avg:%12s\:" % _("Average") + " %6.2lf\\n",
-
-                       "LINE:load5#dd8800",
-                       "LINE:load1#dd0000",
-               ]
+               rrd_graph = []
+
+               for id, colour, when in zip(self.object.rrd_schema_names,
+                               LOAD_AVG_COLOURS, ("1m", "5m", "15m")):
+                       rrd_graph = [
+                               "LINE2:%s%s:%s" % (id, colour, _("Load Average %s") % when),
+                               "GPRINT:%s_max:%12s\: %%6.2lf" % (id, _("Maximum")),
+                               "GPRINT:%s_min:%12s\: %%6.2lf" % (id, _("Minimum")),
+                               "GPRINT:%s_avg:%12s\: %%6.2lf\l" % (id, _("Average")),
+                       ] + rrd_graph
+
+               return rrd_graph
 
        lower_limit = 0
 
        @property
        def graph_title(self):
                _ = self.locale.translate
-               return _("Load average")
+               return _("Load Average")
 
        @property
        def graph_vertical_label(self):
                _ = self.locale.translate
                return _("Load")
 
+       @property
+       def rrd_graph_args(self):
+               return [
+                       "--legend-direction=bottomup",
+               ]
+
 
 class LoadAvgObject(base.Object):
        rrd_schema = [