AzureMonitorAgent/ama_tst/modules/general_health/general_health.py (42 lines of code) (raw):

import os from error_codes import * from errors import error_info, is_error, print_errors from .check_status import check_restart_status ERR_FILE_PATH = "/var/opt/microsoft/azuremonitoragent/log/mdsd.err" def check_err_file(): """ output mdsd.err contents if the file is not empty """ tail_size = -50 pattern = ' [DAEMON] ' err_logs = [] with open(ERR_FILE_PATH) as f: lines = f.readlines(10000) lines = lines[tail_size:] for line in lines: line = line.rstrip('\n') # skip empty lines, daemon start/exit logs if line == '': continue elif pattern in line: continue else: err_logs.append(line) if len(err_logs) > 0: err_logs_str = '\n' + ('\n'.join(err_logs)) error_info.append((ERR_FILE_PATH, err_logs_str)) return WARN_MDSD_ERR_FILE return NO_ERROR def check_general_health(interactive, err_codes=True, prev_success=NO_ERROR): print("CHECKING IF THE AGENT IS HEALTHY...") success = prev_success print("Checking status of subcomponents") checked_restart_status = check_restart_status(interactive) if (is_error(checked_restart_status)): return print_errors(checked_restart_status) else: success = print_errors(checked_restart_status) print("Checking mdsd.err file") checked_err_file = check_err_file() if (is_error(checked_err_file)): return print_errors(checked_err_file) else: success = print_errors(checked_err_file) print("============================================") return success