Module: check_mk
Branch: master
Commit: 717c3e2ec6513966ad142a4362c0a577bbac27cd
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=717c3e2ec65139…
Author: Marcel Arentz <ma(a)mathias-kettner.de>
Date: Thu Mar 2 13:48:02 2017 +0100
4441 mem: MemAvailable is now configurable
Change-Id: I1b8562b4a0ff76bbee2d9914303a776d9994e3cf
---
.werks/4441 | 10 ++++++++++
checks/mem | 22 +++++++++++++++-------
web/plugins/wato/check_parameters.py | 1 +
3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/.werks/4441 b/.werks/4441
new file mode 100644
index 0000000..6b258a6
--- /dev/null
+++ b/.werks/4441
@@ -0,0 +1,10 @@
+Title: mem: MemAvailable is now configurable
+Level: 1
+Component: checks
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1488458833
+Class: feature
+
+
diff --git a/checks/mem b/checks/mem
index 43a5ce2..ff996e1 100644
--- a/checks/mem
+++ b/checks/mem
@@ -148,13 +148,14 @@
factory_settings["mem_linux_default_levels"] = {
- "levels_virtual": ("perc_used", ( 80.0, 90.0)),
- "levels_total": ("perc_used", (120.0, 150.0)),
- "levels_shm": ("perc_used", ( 20.0, 30.0)),
- "levels_pagetables": ("perc_used", ( 8.0, 16.0)),
- "levels_committed": ("perc_used", (100.0, 150.0)),
- "levels_commitlimit": ("perc_free", ( 20.0, 10.0)),
- "levels_vmalloc": ("abs_free", (50*1024*1024,
30*1024*1024)),
+ "levels_virtual" : ("perc_used", ( 80.0, 90.0)),
+ "levels_total" : ("perc_used", (120.0, 150.0)),
+ "levels_shm" : ("perc_used", ( 20.0, 30.0)),
+ "levels_pagetables" : ("perc_used", ( 8.0, 16.0)),
+ "levels_committed" : ("perc_used", (100.0, 150.0)),
+ "levels_commitlimit" : ("perc_free", ( 20.0, 10.0)),
+ "levels_available" : ("perc_free", ( 20.0, 10.0)),
+ "levels_vmalloc" : ("abs_free", (50*1024*1024,
30*1024*1024)),
}
def is_linux_meminfo(meminfo):
@@ -319,6 +320,13 @@ def check_mem_linux(_no_item, params, info):
if r[0]:
yield r # only display if non-OK
+ # Available Memory
+ if "MemAvailable" in meminfo:
+ r = check_mem_levels("Available Memory",
meminfo["MemAvailable"],
+ meminfo["TotalTotal"],
params.get("levels_available"), of_what = "RAM")
+ if r[0]:
+ yield r # only display if non-OK
+
# VMalloc,
# newer kernel version report wrong data,
# i.d. both VmallocUsed and Chunk equal zero
diff --git a/web/plugins/wato/check_parameters.py b/web/plugins/wato/check_parameters.py
index b6e27ed..9226201 100644
--- a/web/plugins/wato/check_parameters.py
+++ b/web/plugins/wato/check_parameters.py
@@ -7342,6 +7342,7 @@ register_check_parameters(
( "levels_writeback", UpperMemoryLevels(_("Disk
Writeback"))),
( "levels_committed", UpperMemoryLevels(_("Committed
memory"), (100.0, 150.0), _("RAM + Swap"))),
( "levels_commitlimit", LowerMemoryLevels(_("Commit
Limit"), ( 20.0, 10.0), _("RAM + Swap"))),
+ ( "levels_available", LowerMemoryLevels(_("Available
memory"), ( 20.0, 10.0), _("RAM"))),
( "levels_vmalloc", LowerMemoryLevels(_("Largest Free
VMalloc Chunk"))),
( "handle_hw_corrupted_error", MonitoringState(
title = _("Handle Hardware Corrupted Error"),