Module: check_mk
Branch: master
Commit: f169c9f5b2f4c56fb779065537a0c3c5c02d21b1
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f169c9f5b2f4c5…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Wed Jun 24 16:52:32 2015 +0200
mk_jolokia: not finish: Added PermGen Space. Beware: Name will may change
---
agents/plugins/mk_jolokia | 24 +++++++++++++-----------
checks/jolokia_metrics | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+), 11 deletions(-)
diff --git a/agents/plugins/mk_jolokia b/agents/plugins/mk_jolokia
index 05d2e47..e71af04 100755
--- a/agents/plugins/mk_jolokia
+++ b/agents/plugins/mk_jolokia
@@ -195,17 +195,19 @@ suburi = "jolokia"
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", [] ),
- ( "java.lang:type=Threading/TotalStartedThreadCount",
"TotalStartedThreadCount", [] ),
- ( "java.lang:type=Runtime/Uptime", "Uptime",
[] ),
- ( "java.lang:type=GarbageCollector,name=*/CollectionCount",
"", [] ),
- ( "java.lang:type=GarbageCollector,name=*/CollectionTime",
"", [] ),
+ ( "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", [] ),
+ ( "java.lang:type=Threading/TotalStartedThreadCount",
"TotalStartedThreadCount", [] ),
+ ( "java.lang:type=Runtime/Uptime",
"Uptime", [] ),
+ ( "java.lang:type=GarbageCollector,name=*/CollectionCount",
"", [] ),
+ ( "java.lang:type=GarbageCollector,name=*/CollectionTime",
"", [] ),
+ ( "java.lang:name=CMS%20Perm%20Gen,type=MemoryPool/Usage/used",
"PermGenUsage", [] ),
+ ( "java.lang:name=CMS%20Perm%20Gen,type=MemoryPool/Usage/max",
"PermGenMax", [] ),
]
diff --git a/checks/jolokia_metrics b/checks/jolokia_metrics
index 0592d0c..2bf9f5c 100644
--- a/checks/jolokia_metrics
+++ b/checks/jolokia_metrics
@@ -50,6 +50,7 @@ jolokia_metrics_tp_default_levels = {
'currentThreadsCount': (None, None)
}
+
def jolokia_metrics_parse(info):
parsed = {}
for inst, var, value in info:
@@ -225,6 +226,17 @@ def inventory_jolokia_metrics_tp(info, what):
inv.append(("%s ThreadPool %s" % (inst ,tp) , levels))
return inv
+def inventory_jolokia_metrics_tp(info, what):
+ inv = []
+ parsed = jolokia_metrics_parse(info)
+ levels = 'jolokia_metrics_tp_default_levels'
+ if what == 'tp':
+ needed_key = ["currentThreadsBusy", "currentThreadCount",
"maxThreads"]
+ for inst, vals in parsed.iteritems():
+ for tp, val in vals.get('tp', {}).iteritems():
+ inv.append(("%s ThreadPool %s" % (inst ,tp) , levels))
+ return inv
+
def check_jolokia_metrics_mem(item, params, info):
parsed = jolokia_metrics_parse(info)
if item not in parsed:
@@ -634,6 +646,10 @@ def check_jolokia_metrics_tp(item, params, info):
ctext, busy, btext, max)
return (status, output, perf)
+def check_jolokia_metrics_perm_gen( item, info, params ):
+ print info
+ return
+
# General JVM checks
check_info["jolokia_metrics.mem"] = {
"service_description" : "JVM %s Memory",
@@ -745,3 +761,28 @@ check_info["jolokia_metrics.bea_sess"] = {
"has_perfdata" : True,
}
+jolokia_metrics_permgen_default_levels = ( 10, 20 )
+
+def inventory_jolokia_metrics_permgen(info):
+ parsed = jolokia_metrics_parse(info)
+ for instance, values in parsed.items():
+ if "PermGenUsage" in values:
+ yield instance, "jolokia_metrics_permgen_default_levels"
+
+def check_jolokia_metrics_perm_gen(item, params, info):
+ parsed = jolokia_metrics_parse(info)
+ values = parsed.get(item)
+ usage_bytes = int(values['PermGenUsage'])
+ max_bytes = int(values['PermGenMax'])
+ if values:
+ return 0, "Usage: %s, Max: %s" % (
get_bytes_human_readable(usage_bytes), get_bytes_human_readable(max_bytes) )
+
+check_info["jolokia_metrics.perm_gen"] = {
+ "service_description" : "JVM %s PermGen Space",
+ "check_function" : check_jolokia_metrics_perm_gen,
+ "inventory_function" : inventory_jolokia_metrics_permgen,
+ "group" : None,
+ "has_perfdata" : True,
+}
+
+