Module: check_mk
Branch: master
Commit: e67322bd326a47a4bc63ec96ea88ba2b39d368ab
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e67322bd326a47…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Feb 5 12:33:15 2015 +0100
Added new metrics-based Perf-O-Meters for AIX and Windows memory checks
---
web/htdocs/metrics.py | 14 ++++++++++++--
web/plugins/metrics/check_mk.py | 3 +++
web/plugins/views/perfometer.py | 1 -
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/web/htdocs/metrics.py b/web/htdocs/metrics.py
index 0f849e0..8b5ace4 100644
--- a/web/htdocs/metrics.py
+++ b/web/htdocs/metrics.py
@@ -219,12 +219,18 @@ def evaluate_literal(expression, translated_metrics):
# e.g. "fs_used:max(%)" -> "fs_used"
def get_name(expression):
+ if type(expression) in (int, float):
+ return None
if expression.endswith("(%)"):
expression = expression[:-3]
return expression.split(":")[0]
def get_color(expression):
- return metric_info[get_name(expression)]["color"]
+ name = get_name(expression)
+ if name:
+ return metric_info[name]["color"]
+ else:
+ return "#808080"
def get_unit(expression):
if expression.endswith("(%)"):
@@ -247,12 +253,16 @@ def perfometer_possible(perfometer, translated_metrics):
required = [ perf_args[0] ]
elif perf_type == "stacked":
required = perf_args[0]
+ if perf_args[1]:
+ required = required + [perf_args[1]] # Reference value for 100%
+ if perf_args[2]:
+ required = required + [perf_args[2]] # Labelling value
else:
raise MKInternalError(_("Undefined Perf-O-Meter type '%s'") %
perf_type)
for req in required:
try:
- evaluate(req, translated_metrics)
+ x = evaluate(req, translated_metrics)
except:
return False
return True
diff --git a/web/plugins/metrics/check_mk.py b/web/plugins/metrics/check_mk.py
index 0c8fa10..ec8ebad 100644
--- a/web/plugins/metrics/check_mk.py
+++ b/web/plugins/metrics/check_mk.py
@@ -236,6 +236,8 @@ check_metrics["check_mk-blade_bx_load"]
= {}
check_metrics["check_mk-cpu.threads"] = {}
check_metrics["check_mk-mem.linux"] = {}
+check_metrics["check_mk-aix_memory"] = {
"ramused" : { "name" : "mem_used", "scale": MB },
"swapused" : { "name" : "swap_used", "scale": MB
}}
+check_metrics["check_mk-mem.win"] = {
"memory" : { "name" : "mem_used", "scale" : MB },
"pagefile" : { "name" : "pagefile_used", "scale" :
MB }}
check_metrics["check_mk-df"] = { 0: {
"name": "fs_used", "scale" : MB } }
check_metrics["check_mk-vms_df"] = { 0: {
"name": "fs_used", "scale" : MB } }
@@ -331,6 +333,7 @@ perfometer_info.append(("stacked", ( [
"user", "system", "io_wait" ],
perfometer_info.append(("stacked", ( [ "fs_used(%)" ],
100.0, None)))
perfometer_info.append(("stacked", ( [ "mem_used",
"swap_used", "caches", "mem_free", "swap_free" ],
None, ("mem_total,mem_used,swap_used,+,/", "100%"))))
perfometer_info.append(("stacked", ( [ "mem_used" ],
"mem_total", None)))
+perfometer_info.append(("stacked", ( [ "mem_used(%)" ],
100.0, None)))
perfometer_info.append(("logarithmic", ( "time_offset", 1.0,
10.0)))
diff --git a/web/plugins/views/perfometer.py b/web/plugins/views/perfometer.py
index 50c9cbf..64dbf10 100644
--- a/web/plugins/views/perfometer.py
+++ b/web/plugins/views/perfometer.py
@@ -198,7 +198,6 @@ def render_metrics_perfometer(perfometer, translated_metrics):
total = metrics.evaluate(total_spec, translated_metrics)
for ex in metrics_expressions:
- name = ex.split(":")[0]
value = metrics.evaluate(ex, translated_metrics)
color = metrics.get_color(ex)
h += perfometer_td(100.0 * value / total, color)