Module: check_mk
Branch: master
Commit: 013bb4540a003608c6e9bec05e0e92ea58108083
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=013bb4540a0036…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 13 18:10:34 2017 +0100
Converting scalar values to float/int right on perfdata parsing now
Change-Id: I53a785b2d682c7bffa7f640efb02695525de5119
---
web/htdocs/metrics.py | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/web/htdocs/metrics.py b/web/htdocs/metrics.py
index df42b7c..7240e48 100644
--- a/web/htdocs/metrics.py
+++ b/web/htdocs/metrics.py
@@ -363,9 +363,19 @@ def parse_perf_data(perf_data_string, check_command=None):
unit_name = value_text[i:]
value = float_or_int(value_text[:i])
- perf_data.append((varname, value, unit_name, warn, crit, min, max))
+ perf_data_tuple = (varname, value, unit_name)
+ for val in [ warn, crit, min, max ]:
+ if val is not None:
+ try:
+ val = float_or_int(val)
+ except ValueError:
+ val = None
+ perf_data_tuple += (val,)
+
+ perf_data.append(perf_data_tuple)
except:
- html.log("Failed to parse perfdata: %s" % perf_data_string)
+ html.log("Failed to parse perfdata '%s': %s" %
+ (perf_data_string, traceback.format_exc()))
if config.debug:
raise
@@ -446,12 +456,11 @@ def translate_metrics(perf_data, check_command):
break
elif entry[index]:
try:
- value = float_or_int(entry[index])
- new_entry["scalar"][key] = value *
translation_entry["scale"]
+ new_entry["scalar"][key] = entry[index] *
translation_entry["scale"]
except:
if config.debug:
raise
- pass # empty of invalid number
+ pass # empty or invalid number
new_entry.update(mi)