Metric reporters can currently be instantiated in one of 2 ways:
a) the reporter class is loaded via reflection
b) the reporter factory is loaded via reflection/ServiceLoader (aka, plugins)
All reporters provided by Flink use the factory approach, and it is preferable because it supports plugins. The plugin approach also has been available 1.11, and I think it's fair to remove the old approach by now.