added data checks
This commit is contained in:
		
							parent
							
								
									c26de603bb
								
							
						
					
					
						commit
						d7ba6d93f4
					
				@ -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',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user