[modules] Add initial version of a load module
Add a load module that shows 1/5/15 minute load average and allows the user to set warning and critical thresholds on the 1 minute average. fixes #9
This commit is contained in:
parent
f6db8b0a85
commit
f31c0e492d
7 changed files with 52 additions and 0 deletions
37
bumblebee/modules/load.py
Normal file
37
bumblebee/modules/load.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import bumblebee.module
|
||||||
|
import multiprocessing
|
||||||
|
import os
|
||||||
|
|
||||||
|
def description():
|
||||||
|
return "Displays system load."
|
||||||
|
|
||||||
|
def parameters():
|
||||||
|
return [
|
||||||
|
"load.warning: Warning threshold for the one-minute load average (defaults to 70% of the number of CPUs)",
|
||||||
|
"load.critical: Critical threshold for the one-minute load average (defaults 80% of the number of CPUs)"
|
||||||
|
]
|
||||||
|
|
||||||
|
class Module(bumblebee.module.Module):
|
||||||
|
def __init__(self, output, config, alias):
|
||||||
|
super(Module, self).__init__(output, config, alias)
|
||||||
|
self._cpus = 1
|
||||||
|
try:
|
||||||
|
self._cpus = multiprocessing.cpu_count()
|
||||||
|
except multiprocessing.NotImplementedError as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
output.add_callback(module=self.instance(), button=1, cmd="gnome-system-monitor")
|
||||||
|
|
||||||
|
def widgets(self):
|
||||||
|
self._load = os.getloadavg()
|
||||||
|
|
||||||
|
return bumblebee.output.Widget(self, "{:.02f}/{:.02f}/{:.02f}".format(
|
||||||
|
self._load[0], self._load[1], self._load[2]))
|
||||||
|
|
||||||
|
def warning(self, widget):
|
||||||
|
return self._load[0] > self._config.parameter("warning", self._cpus*0.7)
|
||||||
|
|
||||||
|
def critical(self, widget):
|
||||||
|
return self._load[0] > self._config.parameter("critical", self._cpus*0.8)
|
||||||
|
|
||||||
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
BIN
screenshots/load.png
Normal file
BIN
screenshots/load.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
|
@ -17,6 +17,9 @@
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"prefix": " cpu "
|
"prefix": " cpu "
|
||||||
},
|
},
|
||||||
|
"load": {
|
||||||
|
"prefix": " load "
|
||||||
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"prefix": " hdd "
|
"prefix": " hdd "
|
||||||
},
|
},
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
"load": {
|
||||||
|
"prefix": " "
|
||||||
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
"load": {
|
||||||
|
"prefix": " "
|
||||||
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
"load": {
|
||||||
|
"prefix": " "
|
||||||
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"prefix": " "
|
"prefix": " "
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"prefix": " cpu "
|
"prefix": " cpu "
|
||||||
},
|
},
|
||||||
|
"load": {
|
||||||
|
"prefix": " load "
|
||||||
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"prefix": " hdd "
|
"prefix": " hdd "
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue