in source/code/troubleshooter/modules/heartbeat/heartbeat.py [0:0]
def check_heartbeat(interactive, prev_success=NO_ERROR):
print("CHECKING HEARTBEAT / HEALTH...")
success = prev_success
# TODO: run `sh /opt/microsoft/omsagent/bin/omsadmin.sh -l` to check if onboarded and running
# check if installed correctly
print("Checking if installed correctly...")
if (get_oms_version() == None):
print_errors(ERR_OMS_INSTALL)
print("Running the installation part of the troubleshooter in order to find the issue...")
print("================================================================================")
return check_installation(interactive, err_codes=False, prev_success=ERR_FOUND)
# get workspace ID
workspace_id = geninfo_lookup('WORKSPACE_ID')
if (workspace_id == None):
error_info.append(('Workspace ID', OMSADMIN_CONF_PATH))
print_errors(ERR_INFO_MISSING)
print("Running the connection part of the troubleshooter in order to find the issue...")
print("================================================================================")
return check_connection(interactive, err_codes=False, prev_success=ERR_FOUND)
# check if running multi-homing
print("Checking if omsagent is trying to run multihoming...")
checked_multihoming = check_multihoming(workspace_id)
if (is_error(checked_multihoming)):
return print_errors(checked_multihoming)
else:
success = print_errors(checked_multihoming)
# TODO: check if other agents are sending heartbeats
# check if omsagent is running
print("Checking if omsagent is running...")
checked_omsagent_running = check_omsagent_running(workspace_id)
if (checked_omsagent_running == ERR_OMS_WONT_RUN):
# try starting omsagent
# TODO: find better way of doing this, check to see if agent is stopped / grab results
checked_omsagent_running = start_omsagent(workspace_id)
if (is_error(checked_omsagent_running)):
return print_errors(checked_omsagent_running)
else:
success = print_errors(checked_omsagent_running)
# check if omsagent.log finds any heartbeat errors
print("Checking for errors in omsagent.log...")
checked_log_hb = check_log_heartbeat(workspace_id)
if (is_error(checked_log_hb)):
# connection issue
if (checked_log_hb == ERR_HEARTBEAT):
print_errors(checked_log_hb)
print("Running the connection part of the troubleshooter in order to find the issue...")
print("================================================================================")
return check_connection(err_codes=False, prev_success=ERR_FOUND)
# other issue
else:
return print_errors(checked_log_hb)
else:
success = print_errors(checked_log_hb)
return success