A tool to measure system events.
health-check [options] [command[options]]
Health-check monitors a process and optionally their child processes and threads for a given amount of time. At the end of the monitoring it will display the CPU time used, wakeup events generated and I/O operations of the given processes. It can be used to diagnose unhealthy badly behaving processes.
health-check options are as follow:
Brief (terse) output for quick overview.
Find and monitor all child and threads of a given set of processes. This option is only useful when attaching to already running processes using the -p option.
Specify analysis duration in seconds. Default is 60 seconds. A duration of 0 will make health-check run forever, or until the monitored process exits.
Follow fork, vfork and clone system calls.
Specify which processes to analyse. Can be process ID or process name.
Resolve IP addresses, this can take some time, hence it is an opt-in feature.
Specify maximum number of timeout blocking system calls are logged before completing. This is useful with very busy processes that can generate tens of thousands of ptrace events that have to be logged by health-check. The default is 1 million.
Specify output log file to export JSON formatted results. The resulting data can be then easily imported and analysed using JSON parsing tools.
Run command as the specified user. This cannot be used with the -p option.
Enable verbose mode (currently just for -W wakelock option). Not compatible with the -b brief option.
-w monitor wakelock count
This uses fnotify to count the number of wakelock lock/unlocks. Lightweight and simple wakelock monitoring.
-W monitor wakelock usage
This does deeper system call inspection to monitor wakelock usage and uses up more run time processing to perform the inspection.