Module: check_mk
Branch: master
Commit: bd52d194fdd52e61d88ddc549352d69dab2596ff
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=bd52d194fdd52e…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Jul 25 14:34:22 2011 +0200
j4p_performance: Supports basic/digest auth now
---
ChangeLog | 1 +
agents/plugins/j4p_performance | 34 ++++++++++++++++++++++++++++------
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7e1403e..05ad575 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,7 @@
* mk_oracle: EXCLUDE_<sid>=ALL or EXCLUDE_<sid>=oracle_sessions can be
used to exclude specific checks now
* mk_oracle: Added optional configuration file to configure the new options
+ * j4p_performance: Supports basic/digest auth now
Multisite:
* FIX: make non-Ascii characters in services names work again
diff --git a/agents/plugins/j4p_performance b/agents/plugins/j4p_performance
index 0da7395..fb900fa 100755
--- a/agents/plugins/j4p_performance
+++ b/agents/plugins/j4p_performance
@@ -1,16 +1,19 @@
#!/usr/bin/python
-import urllib, sys, os
+import urllib2, sys, os
-server = "localhost"
-port = 8080
+server = "localhost"
+port = 8080
+user = "jmx4perl"
+password = "J4PisOK"
+mode = "digest"
instance = None
vars = [
( "java.lang:type=Memory/NonHeapMemoryUsage/used",
"NonHeapMemoryUsage" ),
( "java.lang:type=Memory/HeapMemoryUsage/used",
"HeapMemoryUsage" ),
( "java.lang:type=Threading/ThreadCount", "ThreadCount"
),
- ( "java.lang:type=Threading/DaemonhreadCount",
"DeamonThreadCount" ),
+ ( "java.lang:type=Threading/DaemonThreadCount",
"DeamonThreadCount" ),
( "java.lang:type=Threading/PeakThreadCount",
"PeakThreadCount" ),
( "java.lang:type=Threading/TotalStartedThreadCount",
"TotalStartedThreadCount" ),
( "java.lang:type=Runtime/Uptime", "Uptime" ),
@@ -31,11 +34,30 @@ if os.path.exists(conffile):
import socket
socket.setdefaulttimeout(1.0)
+
+def init_auth():
+ if user and password:
+ passwdmngr = urllib2.HTTPPasswordMgrWithDefaultRealm()
+ passwdmngr.add_password(None, "http://%s:%d/" % (server, port), user,
password)
+ if mode == 'digest':
+ authhandler = urllib2.HTTPDigestAuthHandler(passwdmngr)
+ else:
+ authhandler = urllib2.HTTPBasicAuthHandler(passwdmngr)
+ opener = urllib2.build_opener(authhandler)
+ urllib2.install_opener(opener)
+
+
def fetch_var(server, port, path):
url = "http://%s:%d/j4p/read/%s" % (server, port, path)
- json = urllib.urlopen(url).read()
- return eval(json)["value"]
+ json = urllib2.urlopen(url).read()
+ obj = eval(json)
+ if obj.get('status', 200) == 404:
+ sys.stderr.write('ERROR: Invalid response when fetching url %s\n' % url)
+ sys.stderr.write(' Response: %s\n' % json)
+ return obj.get('value', None)
+
+init_auth()
first = True
for path, title in vars: