Currently, the ChangeEventSourceCoordinator depends on the concrete classes SnapshotChangeEventSourceMetrics and StreamingChangeEventSourceMetrics for exposing task metrics to the outside.
The concrete classes, in turn, not only implement the corresponding listener interfaces but also implement the MXBean ones. In order to implement multi-partition metrics for
DBZ-2975, we need implement a class that acts as a single listener but maintain a collection of MXBean's internally.
As the first step for that, we need to introduce the interfaces for metrics that the coordinator depends on. After that, these interfaces could be implemented in a multi-partition way.