import unicodedata
from .. import locales
+from .. import util
from ..constants import *
from ..i18n import _
return defs
+ def get_stddev(self, interval=None):
+ args = self.make_rrd_defs()
+
+ # Add the correct interval
+ args += ["--start", util.make_interval(interval)]
+
+ for name in self.rrd_schema_names:
+ args += [
+ "VDEF:%s_stddev=%s,STDEV" % (name, name),
+ "PRINT:%s_stddev:%%lf" % name,
+ ]
+
+ x, y, vals = rrdtool.graph("/dev/null", *args)
+ return dict(zip(self.rrd_schema_names, vals))
+
def execute(self):
if self.collected:
raise RuntimeError("This object has already collected its data")
# Extra arguments passed to rrdgraph.
rrd_graph_args = []
- intervals = {
- None : "-3h",
- "hour" : "-1h",
- "day" : "-25h",
- "month": "-30d",
- "week" : "-360h",
- "year" : "-365d",
- }
-
# Default dimensions for this graph
height = GRAPH_DEFAULT_HEIGHT
width = GRAPH_DEFAULT_WIDTH
if self.upper_limit is not None:
args += ["--upper-limit", self.upper_limit]
- try:
- interval = self.intervals[interval]
- except KeyError:
- interval = "end-%s" % interval
-
# Add interval
- args += ["--start", interval]
+ args += ["--start", util.make_interval(interval)]
return args
yield interface
+def make_interval(interval):
+ try:
+ return INTERVALS[interval]
+ except KeyError:
+ return "end-%s" % interval
+
class ProcNetSnmpParser(object):
"""
This class parses /proc/net/snmp{,6} and allows