<%! import os import sys import datetime import pprint import time %> <%def name="debug_pair(name, value)">
${name}
${value}
Cloudera Service and Configuration Manager Agent Status -- ${agent.hostname} Home | pstree | Agent Log

Cloudera Service and Configuration Manager Agent ${version} -- ${agent.hostname}

Agent Dir: ${agent.dir}
Supervisor URL (internal): ${agent.supervisor_url}

Resource Usage

Agent: CPU: ${ agent.process.get_cpu_times() } Memory: ${ agent.process.get_memory_info() } Runtime: ${ time.time() - agent.process.create_time }
Supervisor: CPU: ${ agent.supervisor_psutil_process.get_cpu_times() } Memory: ${ agent.supervisor_psutil_process.get_memory_info() } Runtime: ${ time.time() - agent.supervisor_psutil_process.create_time }
Agent threads:
## Sadly (http://code.google.com/p/psutil/issues/detail?id=186), these ## are not the same thread IDs as python's, so it's hard to tell who ## the culprit is. % for t in agent.process.get_threads(): ${t}
% endfor

Processes

Active

% for process in agent.active_processes.itervalues():

${process.name}

Name
${process.name}
State
<% try: supervisor_state = agent.supervisor_client.supervisor.getProcessInfo(process.name)['statename'] except Exception, e: supervisor_state = "Unknown: " + str(e) %>
${ supervisor_state }
Run Generation
${ process.raw.get('run_generation', "unknown") }
Working Dir
${process.dir}
Supervisor Config
link
## For security, don't print process config links. % if False:
Process Configs
Process Logs
% endif
Status Pages
## Show monitor status if monitoring is enabled % if process.monitor is not None: <% try: status_report = process.monitor.get_debug_status_report() except Exception, e: status_report = None status_report_error = e %>
${process.monitor}
% endif
% endfor

Retired

Firehoses (monitoring)

Last AMON report:
${pprint.pformat(agent.monitor_daemon.last_amon_message)}
Last SMON report:
${pprint.pformat(agent.monitor_daemon.last_smon_message)}
Last HMON report:
${pprint.pformat(agent.monitor_daemon.last_hmon_message)}

Agent Detail

${debug_pair("Raw arguments", sys.argv)} ${debug_pair("Arguments (after defaults)", agent.args)} ${debug_pair("Last Successful Heartbeat", str(agent.last_successful_heartbeat and datetime.datetime.fromtimestamp(agent.last_successful_heartbeat)))} ${debug_pair("Last Heartbeat Request", pprint.pformat(agent.last_heartbeat_request))} ${debug_pair("Last Failed Heartbeat Request", pprint.pformat(agent.last_failed_heartbeat_request))} ## For security, don't print heartbeat response. % if False: ${debug_pair("Last Heartbeat Response", pprint.pformat(agent.last_heartbeat_response))} % endif
Supervisor
PID: ${agent.supervisor_pid} Link All Process Info:
${ pprint.pformat(agent.supervisor_client.supervisor.getAllProcessInfo()) }