[modules] critical/warning threshold refactoring
Quite a lot of modules use the "if higher X -> critical, if higher Y -> warning" idiom now, so extracted that into a common function for reuse. see #23
This commit is contained in:
parent
edfccd2d31
commit
23d7d53fca
5 changed files with 14 additions and 22 deletions
|
@ -51,6 +51,13 @@ class Module(object):
|
||||||
name = "{}.{}".format(self.name, name)
|
name = "{}.{}".format(self.name, name)
|
||||||
return self._config["config"].get(name, default)
|
return self._config["config"].get(name, default)
|
||||||
|
|
||||||
|
def threshold_state(self, value, warn, crit):
|
||||||
|
if value > float(self.parameter("critical", crit)):
|
||||||
|
return "critical"
|
||||||
|
if value > float(self.parameter("warning", warn)):
|
||||||
|
return "warning"
|
||||||
|
return None
|
||||||
|
|
||||||
class Engine(object):
|
class Engine(object):
|
||||||
"""Engine for driving the application
|
"""Engine for driving the application
|
||||||
|
|
||||||
|
|
|
@ -72,14 +72,10 @@ class Module(bumblebee.engine.Module):
|
||||||
if line.startswith("tag"):
|
if line.startswith("tag"):
|
||||||
key, value = line.split(" ", 2)[1:]
|
key, value = line.split(" ", 2)[1:]
|
||||||
self._tags.update({ key: value })
|
self._tags.update({ key: value })
|
||||||
if line.startswith("duration"):
|
for key in ["duration", "position"]:
|
||||||
self._tags.update({
|
if line.startswith(key):
|
||||||
"duration": bumblebee.util.durationfmt(int(line.split(" ")[1]))
|
dur = int(line.split(" ")[1])
|
||||||
})
|
self._tags.update({key:bumblebee.util.durationfmt(dur)})
|
||||||
if line.startswith("position"):
|
|
||||||
self._tags.update({
|
|
||||||
"position": bumblebee.util.durationfmt(int(line.split(" ")[1]))
|
|
||||||
})
|
|
||||||
if line.startswith("set repeat "):
|
if line.startswith("set repeat "):
|
||||||
self._repeat = False if "false" in line else True
|
self._repeat = False if "false" in line else True
|
||||||
if line.startswith("set shuffle "):
|
if line.startswith("set shuffle "):
|
||||||
|
|
|
@ -28,10 +28,6 @@ class Module(bumblebee.engine.Module):
|
||||||
self._utilization = psutil.cpu_percent(percpu=False)
|
self._utilization = psutil.cpu_percent(percpu=False)
|
||||||
|
|
||||||
def state(self, widget):
|
def state(self, widget):
|
||||||
if self._utilization > int(self.parameter("critical", 80)):
|
return self.threshold_state(self._utilization, 70, 80)
|
||||||
return "critical"
|
|
||||||
if self._utilization > int(self.parameter("warning", 70)):
|
|
||||||
return "warning"
|
|
||||||
return None
|
|
||||||
|
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||||
|
|
|
@ -38,10 +38,6 @@ class Module(bumblebee.engine.Module):
|
||||||
self._perc = 100.0*self._used/self._size
|
self._perc = 100.0*self._used/self._size
|
||||||
|
|
||||||
def state(self, widget):
|
def state(self, widget):
|
||||||
if self._perc > float(self.parameter("critical", 90)):
|
return self.threshold_state(self._perc, 80, 90)
|
||||||
return "critical"
|
|
||||||
if self._perc > float(self.parameter("warning", 80)):
|
|
||||||
return "warning"
|
|
||||||
return None
|
|
||||||
|
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||||
|
|
|
@ -35,9 +35,6 @@ class Module(bumblebee.engine.Module):
|
||||||
self._load = os.getloadavg()
|
self._load = os.getloadavg()
|
||||||
|
|
||||||
def state(self, widget):
|
def state(self, widget):
|
||||||
if self._load[0] > float(self.parameter("critical", self._cpus*0.8)):
|
return self.threshold_state(self._load[0], self._cpus*0.7, self._cpus*0.8)
|
||||||
return "critical"
|
|
||||||
if self._load[0] > float(self.parameter("warning", self._cpus*0.7)):
|
|
||||||
return "warning"
|
|
||||||
|
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||||
|
|
Loading…
Reference in a new issue