Thinking further I think Ian's problem is around dealing with multiple MetricRegistry instance for each reporter implementation. I think that we can simplify by providing a MetricRegistryProvider which provides a registry instance which contains metrices from all MetricRegistries
interface MetricRegistryProvider { MetricRegistry getMetricRegistry() } Something like this can be implemented on top of [1]. If that is the case then please open an issue for that. Chetan Mehrotra [1] https://github.com/bdelacretaz/sling-adaptto-2016/blob/master/sling-images/bundles/metrics-es-reporter/src/main/java/ch/x42/sling/at16/internal/MetricCopyingListener.java#L36