A Monitor is a class implementing some functionality that should be done every N milliseconds on a YARN RM or NM.
Classes specified in the config will have their monitor() method called at a configurable interval.
For example, one could implement a Monitor that checks for leaked containers and kills them, ensuring that
no leaked container survives on a NodeManager host for more than N ms (where N is the monitor run interval.)
Implementations can override .toString() for better logging.
Do the work of the monitor. Because this can be arbitrary behavior up to and including script execution,
IPC-related IOExceptions and concurrency-related InterruptedExceptions are caught by the SamzaMonitorService.
Throws:
java.lang.Exception - if there was any problem running the monitor.