Module: check_mk
Branch: master
Commit: e2c789e5d24a0fe21ca2dd30caa80f65dbebfa07
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e2c789e5d24a0f…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 4 16:34:06 2011 +0200
Handling socket timeouts correctly
---
.bugs/185 | 17 +++++++++++++++++
agents/plugins/j4p_performance | 11 ++++++++++-
2 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/.bugs/185 b/.bugs/185
new file mode 100644
index 0000000..bdc71df
--- /dev/null
+++ b/.bugs/185
@@ -0,0 +1,17 @@
+Title: ignored_checktypes können nicht durch Re-Inventory entfernt
+Component: core
+State: done
+Class: bug
+Date: 2011-04-01 13:47:28
+Benefit: 2
+Cost: 2
+Fun: 0
+
+Ich habe in einem laufenden System durch einen Check viele Services dazu bekommen. Dieser Check soll nun komplett ausgeklammert werden.
+
+Meine Idee: Check in ignored_checktypes und cmk --checks <name> -II. Das geht allerdings nicht, da er den Check nicht mehr kennt. Mit einem cmk -II bekommt man den Dienst weg.
+
+Die alternative wäre die autochecks mit sed wegzuräumen. Allerding sollte das auch irgendwie einfacher gehen.
+
+2011-04-01 13:53:16: changed state open -> done
+War mein Fehler. Ist kein Bug, funktioniert.
diff --git a/agents/plugins/j4p_performance b/agents/plugins/j4p_performance
index 12fa224..0da7395 100755
--- a/agents/plugins/j4p_performance
+++ b/agents/plugins/j4p_performance
@@ -14,7 +14,6 @@ vars = [
( "java.lang:type=Threading/PeakThreadCount", "PeakThreadCount" ),
( "java.lang:type=Threading/TotalStartedThreadCount", "TotalStartedThreadCount" ),
( "java.lang:type=Runtime/Uptime", "Uptime" ),
-
]
conffile = os.getenv("MK_CONFDIR", "/etc/check_mk") + "/j4p.conf"
@@ -25,6 +24,13 @@ if instance == None:
if os.path.exists(conffile):
execfile(conffile)
+# We have to deal with socket timeouts. Python > 2.6
+# supports timeout parameter for the urllib2.urlopen method
+# but we are on a python 2.5 system here which seem to use the
+# default socket timeout. We are local here so set it to 1 second.
+import socket
+socket.setdefaulttimeout(1.0)
+
def fetch_var(server, port, path):
url = "http://%s:%d/j4p/read/%s" % (server, port, path)
json = urllib.urlopen(url).read()
@@ -41,5 +47,8 @@ for path, title in vars:
sys.stdout.write("%s %-30s %s\n" % (instance, title, value))
except IOError:
sys.exit(1)
+ except socket.timeout:
+ sys.exit(1)
except:
+ # Simply ignore exceptions. Need to be removed for debugging
pass