public class ProcessTracker
A tracker that periodically probes for external processes resource consumption.
Resource consumption has to be gathered periodically because it can only be retrieved while
the process is still alive and we have no way of knowing or even controlling when the process is
going to finish (assuming it finishes execution on its own). Furthermore, for some metrics (such
as memory usage) only the current values get reported and we need to keep track of peak usage
manually. Gathering only the current values just before the process finishes (assuming this was
possible) would likely be highly inaccurate anyways as the process probably released most of its
resources by that time.