from ..i18n import _
-class GraphTemplateCPU(base.GraphTemplate):
- name = "cpu"
+class GraphTemplateProcessor(base.GraphTemplate):
+ name = "processor"
rrd_graph = [
"DEF:user=%(file)s:user:AVERAGE",
"GPRINT:idleavg:%12s\:" % _("Average") + " %6.2lf\\n",
]
- rrd_graph_args = [
- "--title", _("CPU usage"),
- "--vertical-label", _("Jiffies"),
-
- "--lower-limit", "0", "--rigid",
- ]
+ lower_limit = 0
+ @property
+ def graph_title(self):
+ return _("CPU usage")
-class ProcessorPlugin(base.Plugin):
- name = "cpu"
- description = "CPU Usage Data Source"
+ @property
+ def graph_vertical_label(self):
+ return _("Jiffies")
- templates = [GraphTemplateCPU,]
+class ProcessorObject(base.Object):
rrd_schema = [
"DS:user:DERIVE:0:U",
"DS:nice:DERIVE:0:U",
"DS:sirq:DERIVE:0:U",
]
- @classmethod
- def autocreate(cls, collecty, **kwargs):
- # Every system has got at least one CPU.
- return cls(collecty, **kwargs)
+ @property
+ def id(self):
+ return "default"
- def read(self):
+ def collect(self):
"""
Reads the CPU usage.
"""
if len(columns) < 8:
continue
- entry = [
+ return (
columns[1], # user
columns[2], # nice
columns[3], # sys
columns[5], # wait
columns[6], # irq
columns[7], # sirq
- ]
-
- return ":".join(entry)
+ )
finally:
if f:
f.close()
+
+
+class ProcessorPlugin(base.Plugin):
+ name = "processor"
+ description = "Processor Usage Plugin"
+
+ templates = [GraphTemplateProcessor]
+
+ interval = 30
+
+ @property
+ def objects(self):
+ yield ProcessorObject(self)