mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import time
 | 
						|
from typing import Tuple
 | 
						|
 | 
						|
 | 
						|
def nagios_from_file(results_file: str) -> Tuple[int, str]:
 | 
						|
    """Returns a nagios-appropriate string and return code obtained by
 | 
						|
    parsing the desired file on disk. The file on disk should be of format
 | 
						|
 | 
						|
    %s|%s % (timestamp, nagios_string)
 | 
						|
 | 
						|
    This file is created by various nagios checking cron jobs such as
 | 
						|
    check-rabbitmq-queues and check-rabbitmq-consumers"""
 | 
						|
 | 
						|
    try:
 | 
						|
        with open(results_file) as f:
 | 
						|
            data = f.read().strip()
 | 
						|
    except FileNotFoundError:
 | 
						|
        state = 'UNKNOWN'
 | 
						|
        ret = 3
 | 
						|
        data = "Results file is missing"
 | 
						|
    else:
 | 
						|
        pieces = data.split('|')
 | 
						|
 | 
						|
        if not len(pieces) == 4:
 | 
						|
            state = 'UNKNOWN'
 | 
						|
            ret = 3
 | 
						|
            data = "Results file malformed"
 | 
						|
        else:
 | 
						|
            timestamp = int(pieces[0])
 | 
						|
 | 
						|
            time_diff = time.time() - timestamp
 | 
						|
            if time_diff > 60 * 2:
 | 
						|
                ret = 3
 | 
						|
                state = 'UNKNOWN'
 | 
						|
                data = "Results file is stale"
 | 
						|
            else:
 | 
						|
                ret = int(pieces[1])
 | 
						|
                state = pieces[2]
 | 
						|
                data = pieces[3]
 | 
						|
 | 
						|
    return (ret, f"{state}: {data}")
 |