Thanks to Oleg Roitburd
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Module: check_mk
Branch: master
Commit: aa72c4a04b98013929822e50394f79e5a2b0c273
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=aa72c4a04b9801…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Wed Oct 24 14:18:25 2012 +0200
Addded patches for jolokia_metrics. Thanks to Oleg Roitburd
---
agents/plugins/mk_jolokia | 2 ++
checks/jolokia_metrics | 37 +++++++++++++++++++++++++++----------
2 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/agents/plugins/mk_jolokia b/agents/plugins/mk_jolokia
index f7be1f5..2a8f585 100755
--- a/agents/plugins/mk_jolokia
+++ b/agents/plugins/mk_jolokia
@@ -158,7 +158,9 @@ instance = None
global_vars = [
( "java.lang:type=Memory/NonHeapMemoryUsage/used",
"NonHeapMemoryUsage", [] ),
+ ( "java.lang:type=Memory/NonHeapMemoryUsage/max",
"NonHeapMemoryMax", [] ),
( "java.lang:type=Memory/HeapMemoryUsage/used",
"HeapMemoryUsage", [] ),
+ ( "java.lang:type=Memory/HeapMemoryUsage/max",
"HeapMemoryMax", [] ),
( "java.lang:type=Threading/ThreadCount",
"ThreadCount", [] ),
( "java.lang:type=Threading/DaemonThreadCount",
"DeamonThreadCount", [] ),
( "java.lang:type=Threading/PeakThreadCount",
"PeakThreadCount", [] ),
diff --git a/checks/jolokia_metrics b/checks/jolokia_metrics
index 9b718fb..00d7896 100644
--- a/checks/jolokia_metrics
+++ b/checks/jolokia_metrics
@@ -164,19 +164,36 @@ def check_jolokia_metrics_mem(item, params, info):
d = parsed[item]
mb = 1024 * 1024.0
heap = saveint(d["HeapMemoryUsage"]) / mb
+ heapmax = saveint(d["HeapMemoryMax"]) / mb
non_heap = saveint(d["NonHeapMemoryUsage"]) / mb
+ non_heapmax = saveint(d["NonHeapMemoryMax"]) / mb
total = heap + non_heap
- perfdata = [ ("heap", heap, warn, crit),
- ("nonheap", non_heap, warn, crit) ]
- infotext = "%.0f MB total (%.0f MB heap, %.0f MB non-heap), levels at
%.0f/%.0f" % (total, heap, non_heap, warn, crit)
- if total >= crit:
- return (2, "CRIT - " + infotext, perfdata)
- elif total >= warn:
- return (1, "WARN - " + infotext, perfdata)
+ if type(warn) == int:
+ perfdata = [ ("heap", heap, warn, crit),
+ ("nonheap", non_heap, warn, crit) ]
+ infotext = "%.0f MB total (%.0f MB heap, %.0f MB non-heap), levels at
%.0f/%.0f" % (total, heap, non_heap, warn, crit)
+ if total >= crit:
+ return (2, "CRIT - " + infotext, perfdata)
+ elif total >= warn:
+ return (1, "WARN - " + infotext, perfdata)
+ else:
+ return (0, "OK - " + infotext, perfdata)
else:
- return (0, "OK - " + infotext, perfdata)
-
-
+ perfdata = [ ("heap", heap, heapmax*warn/100.0,
heapmax*crit/100.0),
+ ("nonheap", non_heap, non_heapmax*warn/100.0,
non_heapmax*crit/100.0) ]
+ infotext = "%.0f MB heap levels at %.0f/%.0f, %.0f MB non-heap, levels at
%.0f/%.0f" % (heap, heapmax*warn/100., heapmax*crit/100., non_heap,
non_heapmax*warn/100., non_heapmax*crit/100.)
+ if heap >= heapmax*crit/100.0:
+ return (2, "CRIT - " + infotext, perfdata)
+ elif heap >= heapmax*warn/100.0:
+ return (1, "WARN - " + infotext, perfdata)
+ elif non_heap >= non_heapmax*crit/100.0:
+ return (2, "CRIT - " + infotext, perfdata)
+ elif non_heap >= non_heapmax*warn/100.0:
+ return (1, "WARN - " + infotext, perfdata)
+ else:
+ return (0, "OK - " + infotext, perfdata)
+
+
def check_jolokia_metrics_threads(item, params, info):
warn, crit = params
parsed = jolokia_metrics_parse(info)