Since this polling has some performance cost, you should enforce a minimum polling period (e.g. maybe 1 second to start with) and throw an exception if the user tries to poll more frequently than that. It wouldn't surprise me if we get users trying to throttle this down really low who don't understand it is costly.

You'll need to do this for all the sinks, so maybe add a utility function in MetricsConfig or MetricsSystem that does a check for too low of a polling period and throws an Exception if so.