You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2016/12/20 16:39:59 UTC

[23/24] lucene-solr:jira/solr-8593: SOLR-4735 Use overridableRegistryName also for predefined shared registries. Cleanup + javadocs.

SOLR-4735 Use overridableRegistryName also for predefined shared registries.
Cleanup + javadocs.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b37a72d9
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b37a72d9
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b37a72d9

Branch: refs/heads/jira/solr-8593
Commit: b37a72d941dba705b43c8868584bd9df775a1537
Parents: 4ccb9fb
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Tue Dec 20 14:46:19 2016 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Tue Dec 20 14:47:40 2016 +0100

----------------------------------------------------------------------
 .../apache/solr/metrics/SolrMetricManager.java  | 29 ++++++++++++++++----
 1 file changed, 23 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b37a72d9/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
index 3f51aef..9f126ed 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -69,20 +69,21 @@ public class SolrMetricManager {
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+  /** Common prefix for all registry names that Solr uses. */
   public static final String REGISTRY_NAME_PREFIX = "solr.";
 
+  /** Registry name for Jetty-specific metrics. This name is also subject to overrides controlled by
+   * system properties. This registry is shared between instances of {@link SolrMetricManager}. */
   public static final String JETTY_REGISTRY = REGISTRY_NAME_PREFIX + SolrInfoMBean.Group.jetty.toString();
 
+  /** Registry name for JVM-specific metrics. This name is also subject to overrides controlled by
+   * system properties. This registry is shared between instances of {@link SolrMetricManager}. */
   public static final String JVM_REGISTRY = REGISTRY_NAME_PREFIX + SolrInfoMBean.Group.jvm.toString();
 
   private final ConcurrentMap<String, MetricRegistry> registries = new ConcurrentHashMap<>();
 
-  // these reporters are per CoreContainer
   private final Map<String, Map<String, SolrMetricReporter>> reporters = new HashMap<>();
 
-  // these reporters are per JVM
-  private static final Map<String, Map<String, SolrMetricReporter>> sharedReporters = new HashMap<>();
-
   private final Lock reportersLock = new ReentrantLock();
 
   public SolrMetricManager() { }
@@ -146,13 +147,29 @@ public class SolrMetricManager {
   }
 
   /**
+   * Check for predefined shared registry names. This compares the input name
+   * with normalized and possibly overriden names of predefined shared registries -
+   * {@link #JVM_REGISTRY} and {@link #JETTY_REGISTRY}.
+   * @param registry already normalized and possibly overriden name
+   * @return true if the name matches one of shared registries
+   */
+  private static boolean isSharedRegistry(String registry) {
+    if (overridableRegistryName(JETTY_REGISTRY).equals(registry) ||
+        overridableRegistryName(JVM_REGISTRY).equals(registry)) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  /**
    * Get (or create if not present) a named registry
    * @param registry name of the registry
    * @return existing or newly created registry
    */
   public MetricRegistry registry(String registry) {
     registry = overridableRegistryName(registry);
-    if (JETTY_REGISTRY.equals(registry) || JVM_REGISTRY.equals(registry)) {
+    if (isSharedRegistry(registry)) {
       return SharedMetricRegistries.getOrCreate(registry);
     } else {
       final MetricRegistry existing = registries.get(registry);
@@ -179,7 +196,7 @@ public class SolrMetricManager {
     closeReporters(registry);
     // make sure we use a name with prefix, with overrides
     registry = overridableRegistryName(registry);
-    if (JETTY_REGISTRY.equals(registry) || JVM_REGISTRY.equals(registry)) {
+    if (isSharedRegistry(registry)) {
       SharedMetricRegistries.remove(registry);
     } else {
       registries.remove(registry);