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

lucene-solr:feature/metrics: Revert "SOLR-4735 WIP. Initial design for propagating updates to linked registries."

Repository: lucene-solr
Updated Branches:
  refs/heads/feature/metrics c22910013 -> 99799cafe


Revert "SOLR-4735 WIP. Initial design for propagating updates to linked registries."

This reverts commit c2291001356e6fa1bb72e0543c3e035b5f320862.


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

Branch: refs/heads/feature/metrics
Commit: 99799cafe57cc32fa2a6bf6c25de3acd18cea248
Parents: c229100
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Mon Dec 12 19:19:57 2016 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Mon Dec 12 19:19:57 2016 +0100

----------------------------------------------------------------------
 .../org/apache/solr/core/CoreContainer.java     |   4 +-
 .../apache/solr/handler/RequestHandlerBase.java |  21 ++--
 .../org/apache/solr/metrics/LinkedCounter.java  |  40 -------
 .../apache/solr/metrics/LinkedHistogram.java    |  38 ------
 .../org/apache/solr/metrics/LinkedMeter.java    |  32 -----
 .../org/apache/solr/metrics/LinkedMetric.java   |  13 --
 .../org/apache/solr/metrics/LinkedTimer.java    |  39 ------
 .../solr/metrics/SolrCoreMetricManager.java     |  16 +--
 .../apache/solr/metrics/SolrMetricManager.java  | 120 +++----------------
 .../apache/solr/metrics/SolrMetricProducer.java |   5 +-
 .../solr/metrics/SolrMetricTestUtils.java       |   5 +-
 .../metrics/SolrMetricsIntegrationTest.java     |   2 +-
 12 files changed, 32 insertions(+), 303 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 7582f0e..030a15f 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -477,7 +477,7 @@ public class CoreContainer {
     coreAdminHandler   = createHandler(CORES_HANDLER_PATH, cfg.getCoreAdminHandlerClass(), CoreAdminHandler.class);
     configSetsHandler = createHandler(CONFIGSETS_HANDLER_PATH, cfg.getConfigSetsHandlerClass(), ConfigSetsHandler.class);
     containerHandlers.put(AUTHZ_PATH, securityConfHandler);
-    securityConfHandler.initializeMetrics(SolrInfoMBean.Group.node.toString(), Collections.emptyList(), AUTHZ_PATH);
+    securityConfHandler.initializeMetrics(SolrInfoMBean.Group.node.toString(), AUTHZ_PATH);
     containerHandlers.put(AUTHC_PATH, securityConfHandler);
     if(pkiAuthenticationPlugin != null)
       containerHandlers.put(PKIAuthenticationPlugin.PATH, pkiAuthenticationPlugin.getRequestHandler());
@@ -1181,7 +1181,7 @@ public class CoreContainer {
       containerHandlers.put(path, (SolrRequestHandler)handler);
     }
     if (handler instanceof SolrMetricProducer) {
-      ((SolrMetricProducer)handler).initializeMetrics(SolrInfoMBean.Group.node.toString(), Collections.emptyList(), path);
+      ((SolrMetricProducer)handler).initializeMetrics(SolrInfoMBean.Group.node.toString(), path);
     }
     return handler;
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
index 44730f5..7310c32 100644
--- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
@@ -20,7 +20,6 @@ import java.lang.invoke.MethodHandles;
 import java.net.URL;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.List;
 
 import com.codahale.metrics.Counter;
 import com.codahale.metrics.Meter;
@@ -134,19 +133,13 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo
   }
 
   @Override
-  public Collection<String> initializeMetrics(String registryName, List<String> linkedRegistries, String scope) {
-    numErrors = SolrMetricManager.meter(registryName, linkedRegistries,
-        "errors", getCategory().toString(), scope);
-    numServerErrors = SolrMetricManager.meter(registryName, linkedRegistries,
-        "serverErrors", getCategory().toString(), scope);
-    numClientErrors = SolrMetricManager.meter(registryName, linkedRegistries,
-        "clientErrors", getCategory().toString(), scope);
-    numTimeouts = SolrMetricManager.meter(registryName, linkedRegistries,
-        "timeouts", getCategory().toString(), scope);
-    requests = SolrMetricManager.counter(registryName, linkedRegistries,
-        "requests", getCategory().toString(), scope);
-    requestTimes = SolrMetricManager.timer(registryName, linkedRegistries,
-        "requestTimes", getCategory().toString(), scope);
+  public Collection<String> initializeMetrics(String registryName, String scope) {
+    numErrors = SolrMetricManager.meter(registryName, "errors", getCategory().toString(), scope);
+    numServerErrors = SolrMetricManager.meter(registryName, "serverErrors", getCategory().toString(), scope);
+    numClientErrors = SolrMetricManager.meter(registryName, "clientErrors", getCategory().toString(), scope);
+    numTimeouts = SolrMetricManager.meter(registryName, "timeouts", getCategory().toString(), scope);
+    requests = SolrMetricManager.counter(registryName, "requests", getCategory().toString(), scope);
+    requestTimes = SolrMetricManager.timer(registryName, "requestTimes", getCategory().toString(), scope);
     return Arrays.asList("errors", "serverErrors", "clientErrors", "timeouts", "requestTimes", "requests");
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/LinkedCounter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/LinkedCounter.java b/solr/core/src/java/org/apache/solr/metrics/LinkedCounter.java
deleted file mode 100644
index 6f80a48..0000000
--- a/solr/core/src/java/org/apache/solr/metrics/LinkedCounter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.apache.solr.metrics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.codahale.metrics.Counter;
-
-/**
- *
- */
-public class LinkedCounter extends Counter implements LinkedMetric {
-  private final List<Counter> linked = new ArrayList<>(1);
-
-  public LinkedCounter(List<Counter> linked) {
-    super();
-    if (linked != null) {
-      this.linked.addAll(linked);
-    }
-  }
-
-  public List<Counter> getLinked() {
-    return linked;
-  }
-
-  @Override
-  public void inc(long n) {
-    super.inc(n);
-    for (Counter c : linked) {
-      c.inc(n);
-    }
-  }
-
-  @Override
-  public void dec(long n) {
-    super.dec(n);
-    for (Counter c : linked) {
-      c.dec(n);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/LinkedHistogram.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/LinkedHistogram.java b/solr/core/src/java/org/apache/solr/metrics/LinkedHistogram.java
deleted file mode 100644
index a8e3d0a..0000000
--- a/solr/core/src/java/org/apache/solr/metrics/LinkedHistogram.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.apache.solr.metrics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.codahale.metrics.ExponentiallyDecayingReservoir;
-import com.codahale.metrics.Histogram;
-import com.codahale.metrics.Reservoir;
-
-/**
- *
- */
-public class LinkedHistogram extends Histogram implements LinkedMetric {
-  private final List<Histogram> linked = new ArrayList<>(1);
-
-  public LinkedHistogram(List<Histogram> linked) {
-    this(new ExponentiallyDecayingReservoir(), linked);
-  }
-
-  public LinkedHistogram(Reservoir reservoir, List<Histogram> linked) {
-    super(reservoir);
-    if (linked != null) {
-      this.linked.addAll(linked);
-    }
-  }
-
-  public List<Histogram> getLinked() {
-    return linked;
-  }
-
-  @Override
-  public void update(long value) {
-    super.update(value);
-    for (Histogram h : linked) {
-      h.update(value);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/LinkedMeter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/LinkedMeter.java b/solr/core/src/java/org/apache/solr/metrics/LinkedMeter.java
deleted file mode 100644
index d5a206c..0000000
--- a/solr/core/src/java/org/apache/solr/metrics/LinkedMeter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.solr.metrics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.codahale.metrics.Meter;
-
-/**
- *
- */
-public class LinkedMeter extends Meter implements LinkedMetric {
-  private final List<Meter> linked = new ArrayList<>(1);
-
-  public LinkedMeter(List<Meter> linked) {
-    super();
-    if (linked != null) {
-      this.linked.addAll(linked);
-    }
-  }
-
-  public List<Meter> getLinked() {
-    return linked;
-  }
-
-  @Override
-  public void mark(long n) {
-    super.mark(n);
-    for (Meter m : linked) {
-      m.mark(n);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/LinkedMetric.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/LinkedMetric.java b/solr/core/src/java/org/apache/solr/metrics/LinkedMetric.java
deleted file mode 100644
index 543b34c..0000000
--- a/solr/core/src/java/org/apache/solr/metrics/LinkedMetric.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.solr.metrics;
-
-import java.util.List;
-
-import com.codahale.metrics.Metric;
-
-/**
- *
- */
-public interface LinkedMetric {
-
-  List<? extends Metric> getLinked();
-}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/LinkedTimer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/LinkedTimer.java b/solr/core/src/java/org/apache/solr/metrics/LinkedTimer.java
deleted file mode 100644
index af3dba6..0000000
--- a/solr/core/src/java/org/apache/solr/metrics/LinkedTimer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.solr.metrics;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
-
-import com.codahale.metrics.Timer;
-
-/**
- *
- */
-public class LinkedTimer extends Timer implements LinkedMetric {
-  private final List<Timer> linked = new ArrayList<>(1);
-
-  public LinkedTimer(List<Timer> linked) {
-    super();
-    if (linked != null) {
-      this.linked.addAll(linked);
-    }
-  }
-
-  public List<Timer> getLinked() {
-    return linked;
-  }
-
-  @Override
-  public <T> T time(Callable<T> event) throws Exception {
-    throw new UnsupportedOperationException("Not supported in " + getClass().getName());
-  }
-
-  @Override
-  public void update(long duration, TimeUnit unit) {
-    super.update(duration, unit);
-    for (Timer t : linked) {
-      t.update(duration, unit);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
index b2bfddd..22faa1a 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.lang.invoke.MethodHandles;
 import java.util.concurrent.ConcurrentHashMap;
@@ -97,7 +96,7 @@ public class SolrCoreMetricManager implements Closeable {
       throw new IllegalArgumentException("registerMetricProducer() called with illegal arguments: " +
           "scope = " + scope + ", producer = " + producer);
     }
-    Collection<String> registered = producer.initializeMetrics(getRegistryName(), getLinkedRegistries(), scope);
+    Collection<String> registered = producer.initializeMetrics(getRegistryName(), scope);
     if (registered == null || registered.isEmpty()) {
       throw new IllegalArgumentException("registerMetricProducer() did not register any metrics " +
       "for scope = " + scope + ", producer = " + producer);
@@ -124,17 +123,4 @@ public class SolrCoreMetricManager implements Closeable {
   public String getRegistryName() {
     return SolrMetricManager.getRegistryName(SolrInfoMBean.Group.core, core.getName());
   }
-
-  public List<String> getLinkedRegistries() {
-    String collectionName = core.getCoreDescriptor().getCollectionName();
-    if (collectionName == null) {
-      return Collections.emptyList();
-    } else {
-      if (collectionName.equals(core.getName())) {
-        return Collections.emptyList();
-      } else {
-        return Collections.singletonList(collectionName);
-      }
-    }
-  }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/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 2dc4b30..004d393 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -18,8 +18,6 @@ package org.apache.solr.metrics;
 
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -130,19 +128,11 @@ public class SolrMetricManager {
    * Remove a named registry.
    * @param registry name of the registry to remove
    */
-  public static synchronized void removeRegistry(String registry) {
+  public static void removeRegistry(String registry) {
     // close any reporters for this registry first
     closeReporters(registry);
     // make sure we use a name with prefix, with overrides
     registry = overridableRegistryName(registry);
-    if (SharedMetricRegistries.names().contains(registry)) {
-      // dereference any linked metrics
-      for (Map.Entry<String, Metric> entry : SharedMetricRegistries.getOrCreate(registry).getMetrics().entrySet()) {
-        if (entry.getValue() instanceof LinkedMetric) {
-          ((LinkedMetric)entry.getValue()).getLinked().clear();
-        }
-      }
-    }
     SharedMetricRegistries.remove(registry);
   }
 
@@ -195,10 +185,18 @@ public class SolrMetricManager {
   }
 
   /**
+   * Remove all metrics from a specified registry.
+   * @param registry registry name
+   */
+  public static void clearRegistry(String registry) {
+    registry(registry).removeMatching(MetricFilter.ALL);
+  }
+
+  /**
    * Remove some metrics from a named registry
    * @param registry registry name
    * @param metricPath (optional) top-most metric name path elements. If empty then
-   *        this is equivalent to removing all metrics,
+   *        this is equivalent to calling {@link #clearRegistry(String)},
    *        otherwise non-empty elements will be joined using dotted notation
    *        to form a fully-qualified prefix. Metrics with names that start
    *        with the prefix will be removed.
@@ -221,34 +219,11 @@ public class SolrMetricManager {
    * @param registry registry name
    * @param metricName metric name, either final name or a fully-qualified name
    *                   using dotted notation
-   * @param linkedRegistries other registry names where updates to this metric should be propagated. This is
-   *                         achieved by creating an instance of {@link LinkedMetric} that references
-   *                         metrics registered in all linked registries, and propagating every update
-   *                         from this metric to the linked ones.
    * @param metricPath (optional) additional top-most metric name path elements
    * @return existing or a newly created {@link Meter}
    */
-  public static Meter meter(String registry, List<String> linkedRegistries, String metricName, String... metricPath) {
-    MetricRegistry metricRegistry = registry(registry);
-    String name = mkName(metricName, metricPath);
-    // return existing?
-    if (metricRegistry.getMetrics().containsKey(name)) {
-      return metricRegistry.meter(name);
-    }
-    // create new, possibly with linked
-    registry = overridableRegistryName(registry);
-    if (linkedRegistries != null && !linkedRegistries.isEmpty()) {
-      List<Meter> list = new ArrayList<>(linkedRegistries.size());
-      for (String pr : linkedRegistries) {
-        MetricRegistry linked = registry(pr);
-        list.add(linked.meter(name));
-      }
-      Meter meter = new LinkedMeter(list);
-      metricRegistry.register(name, meter);
-      return meter;
-    } else {
-      return registry(registry).meter(name);
-    }
+  public static Meter meter(String registry, String metricName, String... metricPath) {
+    return registry(registry).meter(mkName(metricName, metricPath));
   }
 
   /**
@@ -256,31 +231,11 @@ public class SolrMetricManager {
    * @param registry registry name
    * @param metricName metric name, either final name or a fully-qualified name
    *                   using dotted notation
-   * @param linkedRegistries other registry names where updates to this metric should be propagated
    * @param metricPath (optional) additional top-most metric name path elements
    * @return existing or a newly created {@link Timer}
    */
-  public static Timer timer(String registry, List<String> linkedRegistries, String metricName, String... metricPath) {
-    MetricRegistry metricRegistry = registry(registry);
-    String name = mkName(metricName, metricPath);
-    // return existing?
-    if (metricRegistry.getMetrics().containsKey(name)) {
-      return metricRegistry.timer(name);
-    }
-    // create new, possibly with linked
-    registry = overridableRegistryName(registry);
-    if (linkedRegistries != null && !linkedRegistries.isEmpty()) {
-      List<Timer> list = new ArrayList<>(linkedRegistries.size());
-      for (String pr : linkedRegistries) {
-        MetricRegistry linked = registry(pr);
-        list.add(linked.timer(name));
-      }
-      Timer timer = new LinkedTimer(list);
-      metricRegistry.register(name, timer);
-      return timer;
-    } else {
-      return registry(registry).timer(name);
-    }
+  public static Timer timer(String registry, String metricName, String... metricPath) {
+    return registry(registry).timer(mkName(metricName, metricPath));
   }
 
   /**
@@ -288,31 +243,11 @@ public class SolrMetricManager {
    * @param registry registry name
    * @param metricName metric name, either final name or a fully-qualified name
    *                   using dotted notation
-   * @param linkedRegistries other registry names where updates to this metric should be propagated
    * @param metricPath (optional) additional top-most metric name path elements
    * @return existing or a newly created {@link Counter}
    */
-  public static Counter counter(String registry, List<String> linkedRegistries, String metricName, String... metricPath) {
-    MetricRegistry metricRegistry = registry(registry);
-    String name = mkName(metricName, metricPath);
-    // return existing?
-    if (metricRegistry.getMetrics().containsKey(name)) {
-      return metricRegistry.counter(name);
-    }
-    // create new, possibly with linked
-    registry = overridableRegistryName(registry);
-    if (linkedRegistries != null && !linkedRegistries.isEmpty()) {
-      List<Counter> list = new ArrayList<>(linkedRegistries.size());
-      for (String pr : linkedRegistries) {
-        MetricRegistry parent = registry(pr);
-        list.add(parent.counter(name));
-      }
-      Counter counter = new LinkedCounter(list);
-      metricRegistry.register(name, counter);
-      return counter;
-    } else {
-      return registry(registry).counter(name);
-    }
+  public static Counter counter(String registry, String metricName, String... metricPath) {
+    return registry(registry).counter(mkName(metricName, metricPath));
   }
 
   /**
@@ -323,27 +258,8 @@ public class SolrMetricManager {
    * @param metricPath (optional) additional top-most metric name path elements
    * @return existing or a newly created {@link Histogram}
    */
-  public static Histogram histogram(String registry, List<String> linkedRegistries, String metricName, String... metricPath) {
-    MetricRegistry metricRegistry = registry(registry);
-    String name = mkName(metricName, metricPath);
-    // return existing?
-    if (metricRegistry.getMetrics().containsKey(name)) {
-      return metricRegistry.histogram(name);
-    }
-    // create new, possibly with linked
-    registry = overridableRegistryName(registry);
-    if (linkedRegistries != null && !linkedRegistries.isEmpty()) {
-      List<Histogram> list = new ArrayList<>(linkedRegistries.size());
-      for (String pr : linkedRegistries) {
-        MetricRegistry parent = registry(pr);
-        list.add(parent.histogram(name));
-      }
-      Histogram histogram = new LinkedHistogram(list);
-      metricRegistry.register(name, histogram);
-      return histogram;
-    } else {
-      return registry(registry).histogram(name);
-    }
+  public static Histogram histogram(String registry, String metricName, String... metricPath) {
+    return registry(registry).histogram(mkName(metricName, metricPath));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java
index dd04b02..929e6a2 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java
@@ -17,7 +17,6 @@
 package org.apache.solr.metrics;
 
 import java.util.Collection;
-import java.util.List;
 
 import org.apache.solr.core.SolrInfoMBean;
 
@@ -30,11 +29,9 @@ public interface SolrMetricProducer extends SolrInfoMBean {
   /**
    * Initializes metrics specific to this producer
    * @param registry registry name where metrics are registered
-   * @param linkedRegistries other registries where changes to these metrics will be tracked, too,
-   *                         via {@link LinkedMetric} implementations.
    * @param scope scope of the metrics (eg. handler name) to separate metrics of
    *              instances of the same component executing in different contexts
    * @return registered (or existing) unqualified names of metrics specific to this producer.
    */
-  Collection<String> initializeMetrics(String registry, List<String> linkedRegistries, String scope);
+  Collection<String> initializeMetrics(String registry, String scope);
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java
index 1a45184..f8ca6d7 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java
@@ -21,7 +21,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
@@ -83,12 +82,12 @@ public final class SolrMetricTestUtils {
   public static SolrMetricProducer getProducerOf(SolrInfoMBean.Category category, String scope, Map<String, Counter> metrics) {
     return new SolrMetricProducer() {
       @Override
-      public Collection<String> initializeMetrics(String registry, List<String> linkedRegistries, String scope) {
+      public Collection<String> initializeMetrics(String registry, String scope) {
         if (metrics == null || metrics.isEmpty()) {
           return Collections.emptyList();
         }
         for (Map.Entry<String, Counter> entry : metrics.entrySet()) {
-          SolrMetricManager.counter(registry, linkedRegistries, entry.getKey(), category.toString(), scope);
+          SolrMetricManager.counter(registry, entry.getKey(), category.toString(), scope);
         }
         return metrics.keySet();
       }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/99799caf/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
index 46f6373..228c30e 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
@@ -106,7 +106,7 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
 
     String metricName = SolrMetricManager.mkName(METRIC_NAME, HANDLER_CATEGORY.toString(), HANDLER_NAME);
     SolrCoreMetricManager metricManager = h.getCore().getMetricManager();
-    Timer timer = (Timer) SolrMetricManager.timer(metricManager.getRegistryName(), metricManager.getLinkedRegistries(), metricName);
+    Timer timer = (Timer) SolrMetricManager.timer(metricManager.getRegistryName(), metricName);
 
     long initialCount = timer.getCount();