Module: check_mk
Branch: master
Commit: bbc542fa8c237a8558346d62457bee12ddbc143c
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=bbc542fa8c237a…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Feb 25 16:01:55 2011 +0100
Catching exceptions caused by unset bandwidth in interface perfometer
---
ChangeLog | 1 +
web/htdocs/lib.py | 6 ++++++
web/plugins/perfometer/check_mk.py | 9 ++++++---
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 38a100e..6bfaee1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -39,6 +39,7 @@
* FIX: PNP timerange painter option field takes selected value as default now
* FIX: Fixed perfometer styling in single dataset layouts
* FIX: Tooltips work in group headers now
+ * FIX: Catching exceptions caused by unset bandwidth in interface perfometer
WATO:
* FIX: fix problem with vanishing services on Windows. Affected were services
diff --git a/web/htdocs/lib.py b/web/htdocs/lib.py
index e50e883..a085a2d 100644
--- a/web/htdocs/lib.py
+++ b/web/htdocs/lib.py
@@ -87,3 +87,9 @@ def create_user_file(path, mode):
def write_settings_file(path, content):
create_user_file(path, "w").write(pprint.pformat(content) +
"\n")
+
+def savefloat(f):
+ try:
+ return float(f)
+ except:
+ return 0.0
diff --git a/web/plugins/perfometer/check_mk.py b/web/plugins/perfometer/check_mk.py
index 28deb9c..ee5b8a2 100644
--- a/web/plugins/perfometer/check_mk.py
+++ b/web/plugins/perfometer/check_mk.py
@@ -193,9 +193,12 @@ def performeter_check_mk_if(row, check_command, perf_data):
for name, perf, color in [
("in", perf_data[0], "#0e6"),
("out", perf_data[5], "#2af") ]:
- bytes = float(perf[1])
- bw = float(perf[6])
- rrate = bytes / bw
+ bytes = savefloat(perf[1])
+ bw = savefloat(perf[6])
+ if bw > 0.0:
+ rrate = bytes / bw
+ else:
+ rrate = 0
drate = max(0.02, rrate ** 0.5 ** 0.5)
rperc = 100 * rrate
dperc = 100 * drate