The gopsutil package has been integrated into the Evergreen agent (via grip) and system resource information about processes running on the machine are available by sending an HTTP GET request to localhost:2285/status. Since the data is not yet available through the Evergreen API, we should instead add a new background command/script to the etc/evergreen.yml project configuration file that periodically sends (e.g. every 5 seconds) an HTTP GET request to localhost:2285/status. The "ps_info" array in the Evergreen agent's response should be examined to determine the CPU, memory, I/O utilization of each individual process at/until the particular time instant the HTTP GET request was issued. The values extracted from the Evergreen agent's response should be written to a file as one line per process—including a timestamp—and uploaded to S3.
Note: To avoid having the size of the file balloon with information about idle system processes, it may be useful to only include processes within resmoke.py's process subtree.