There are several ways to collect this type of information, I'll be speaking about two that I use on a daily basis as to oversee what's going on with my devices:
Using a terminal application, you are able to run Linux commands like
ps that provide information about the currently running processes:
ps (i.e., process status) displays information about a selection of the active processes.
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel.
The terminal I most use is called Android Terminal Emulator by Jack Palevich available from Google Play Store.
There are several applications with the sole purpose of providing you with real-time information regarding the processes being executed, detailed information about apps and their system resources usage, system logs or system monitoring:
Android System Info by ElectricSheep available from Google Play Store.
This app presents information divided with 5 tabs:
An overview of you device important information: battery usage; Internal Memory used/free; SDCard size and free space; RAM; etc.
All system information is presented here: OS; Buildinfos; Battery; Memory; Telephony; Networks; Wifi; CPU; Screen; Sensors; Features; JavaProperties; and many more. Just tap over each one to unfold the detailed information.
Shows the total CPU load and CPU load/memory used for each process. You can tap a process to get more details about it; kill the process or switch to the process.
List of all installed apps, providing means to stop or uninstall an app. If you tap over an app, you have several options like: launch; Manage; Uninstall; etc. Additionally, you are able to see all the useful information about the package itself and in relation to your system, including all permissions he uses.
Provides you with your system logs. If you press "menu" the logs will be saved to your SD card.