Details
Description
SolrJmxReporter uses Dropwizard's JmxReporter, which in turn uses a MetricRegistry listener to report newly added metrics as MBeans, and to unregister them from MBeanServer when the reporter is closed, which happens when core is closed.
The metrics API keeps around existing metrics in solr.core.* registries to help maintain continuous metrics in presence of core reloads. However, this means that some of these metric instances are not registered anew when a core is reloaded - and for these metrics the listener won't fire, so the MBeans won't be registered.
This limitation is a result of the use of MetricRegistryListener in JmxReporter and can't be fixed without reimplementing this class. Another possible approach would be to configure the JmxReporter to use a "mirroring" registry instead, which will be populated with existing metrics from the original registry (thus generating "metric added" events) and then kept in sync with the main registry via a listener.