From d7ba6d93f4ca49aa588767c8da157b8ffee1e8c4 Mon Sep 17 00:00:00 2001 From: George Pochiscan Date: Wed, 31 May 2023 12:47:38 +0300 Subject: [PATCH] added data checks --- .../checks/informix_transactions | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/check_mk-informix/checks/informix_transactions b/check_mk-informix/checks/informix_transactions index 0b4dd2c..a8d33a5 100644 --- a/check_mk-informix/checks/informix_transactions +++ b/check_mk-informix/checks/informix_transactions @@ -21,13 +21,12 @@ def parse_informix_transactions(info): for line in info: if line[0].startswith("[[[") and line[0].endswith("]]]"): instance = line[0][3:-3] - elif instance is not None: entry = {} parsed.setdefault(instance, []) parsed[instance].append(entry) - ###in some cases, for some transaction lines there is no info, only a timestamp that should be ignored - if len(line) > 2: + + if len(line) > 2: if "C" in line[2]: entry.setdefault("current_log_id", line[3]) elif entry is not None: @@ -35,7 +34,7 @@ def parse_informix_transactions(info): line[4] = line[4].split(":",1)[0] if ":" in str(line[5]): line[5] = line[5].split(":",1)[0] - + entry.setdefault("session", [line[2], line[3], line[4], line[5]]) return parsed @@ -51,13 +50,14 @@ def check_informix_transactions_locks(item, params, parsed): infotext = "" state = 0 for session in data[1:]: - if "-" not in session["session"][1]: - if int(session["session"][1]) >= crit: - state = 2 - infotext += 'Session with ID %s has %s locks; ' % (session["session"][0], session["session"][1]) - elif int(session["session"][1]) >= warn: - state = 1 - infotext += 'Session with ID %s has %s locks; ' % (session["session"][0], session["session"][1]) + if session and session["session"][2]: + if "-" not in session["session"][1]: + if int(session["session"][1]) >= crit: + state = 2 + infotext += 'Session with ID %s has %s locks; ' % (session["session"][0], session["session"][1]) + elif int(session["session"][1]) >= warn: + state = 1 + infotext += 'Session with ID %s has %s locks; ' % (session["session"][0], session["session"][1]) if state: infotext += " (warn/crit at %s/%s)" % (warn, crit) @@ -86,12 +86,13 @@ def check_informix_transactions_activity(item, no_params, parsed): if item in parsed: data = parsed[item] state = 0 - infotext = '' + infotext = '' for session in data[1:]: - if "-" not in session["session"][2]: - if int(session["session"][2]) < int(data[0]['current_log_id']): - state = 2 - infotext += "Session %s doesn't have activity in current log; " % (session["session"][0]) + if session and session["session"][2]: + if "-" not in session["session"][2]: + if int(session["session"][2]) < int(data[0]['current_log_id']): + state = 2 + infotext += "Session %s doesn't have activity in current log; " % (session["session"][0]) if not state: @@ -119,10 +120,11 @@ def check_informix_long_transactions(item, no_params, parsed): state = 0 infotext = '' for session in data[1:]: - if "-" not in session["session"][2]: - if (int(session["session"][2]) - int(session["session"][3])) < 2: - state = 2 - infotext += "Session %s is using more than 3 logical logs; " % (session["session"][0]) + if session and session["session"][2]: + if "-" not in session["session"][2]: + if (int(session["session"][2]) - int(session["session"][3])) < 2: + state = 2 + infotext += "Session %s is using more than 3 logical logs; " % (session["session"][0]) if not state: @@ -138,3 +140,4 @@ check_info['informix_transactions.long_transactions'] = { 'has_perfdata': False, 'service_description': 'Informix sessions Long transactions %s', } +