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 2017/12/04 17:49:11 UTC
[27/50] lucene-solr:jira/solr-11458-2: SOLR-11291: Factor out
abstract metrics/SolrCore[Container]Reporter classes. (Omar Abdelnabi,
Christine Poerschke)
SOLR-11291: Factor out abstract metrics/SolrCore[Container]Reporter classes. (Omar Abdelnabi, Christine Poerschke)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/812db14f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/812db14f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/812db14f
Branch: refs/heads/jira/solr-11458-2
Commit: 812db14f278ce8fe03de94d18e0c662d104f62e3
Parents: 64b3a5b
Author: Christine Poerschke <cp...@apache.org>
Authored: Tue Nov 28 15:39:55 2017 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Tue Nov 28 15:39:55 2017 +0000
----------------------------------------------------------------------
solr/CHANGES.txt | 3 ++
.../solr/metrics/SolrCoreContainerReporter.java | 47 ++++++++++++++++++++
.../apache/solr/metrics/SolrCoreReporter.java | 47 ++++++++++++++++++++
.../apache/solr/metrics/SolrMetricManager.java | 10 ++---
.../reporters/solr/SolrClusterReporter.java | 12 ++---
.../reporters/solr/SolrShardReporter.java | 12 ++---
.../reporters/solr/SolrCloudReportersTest.java | 8 ++++
7 files changed, 117 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ac5b605..1358212 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -211,6 +211,9 @@ Other Changes
* SOLR-11507: SOLR-11638: Randomize SolrTestCaseJ4.CloudSolrClientBuilder more, and simplify it.
(Jason Gerlowski, David Smiley)
+* SOLR-11291: Factor out abstract metrics/SolrCore[Container]Reporter classes.
+ (Omar Abdelnabi, Christine Poerschke)
+
================== 7.1.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/core/src/java/org/apache/solr/metrics/SolrCoreContainerReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrCoreContainerReporter.java b/solr/core/src/java/org/apache/solr/metrics/SolrCoreContainerReporter.java
new file mode 100644
index 0000000..b612b2e
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreContainerReporter.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.metrics;
+
+import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.PluginInfo;
+
+/**
+ * A {@link SolrMetricReporter} that has access to its {@link CoreContainer}.
+ */
+abstract public class SolrCoreContainerReporter extends SolrMetricReporter {
+
+ protected CoreContainer coreContainer;
+
+ protected SolrCoreContainerReporter(SolrMetricManager metricManager, String registryName) {
+ super(metricManager, registryName);
+ }
+
+ @Override
+ final public void init(PluginInfo pluginInfo) {
+ throw new UnsupportedOperationException(getClass().getCanonicalName()+".init(PluginInfo) is not supported, use init(PluginInfo,CoreContainer) instead.");
+ }
+
+ public void init(PluginInfo pluginInfo, CoreContainer coreContainer) {
+ super.init(pluginInfo);
+ this.coreContainer = coreContainer;
+ }
+
+ public CoreContainer getCoreContainer() {
+ return coreContainer;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/core/src/java/org/apache/solr/metrics/SolrCoreReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrCoreReporter.java b/solr/core/src/java/org/apache/solr/metrics/SolrCoreReporter.java
new file mode 100644
index 0000000..bd2672c
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreReporter.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.metrics;
+
+import org.apache.solr.core.PluginInfo;
+import org.apache.solr.core.SolrCore;
+
+/**
+ * A {@link FilteringSolrMetricReporter} that has access to its {@link SolrCore}.
+ */
+abstract public class SolrCoreReporter extends FilteringSolrMetricReporter {
+
+ protected SolrCore core;
+
+ public SolrCoreReporter(SolrMetricManager metricManager, String registryName) {
+ super(metricManager, registryName);
+ }
+
+ @Override
+ final public void init(PluginInfo pluginInfo) {
+ throw new UnsupportedOperationException(getClass().getCanonicalName()+".init(PluginInfo) is not supported, use init(PluginInfo,SolrCore) instead.");
+ }
+
+ public void init(PluginInfo pluginInfo, SolrCore core) {
+ super.init(pluginInfo);
+ this.core = core;
+ }
+
+ public SolrCore getCore() {
+ return core;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/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 adfdda3..4223675 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -54,8 +54,6 @@ import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrInfoBean;
import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.metrics.reporters.solr.SolrClusterReporter;
-import org.apache.solr.metrics.reporters.solr.SolrShardReporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -875,10 +873,10 @@ public class SolrMetricManager {
new Object[]{this, registry}
);
try {
- if (reporter instanceof SolrShardReporter) {
- ((SolrShardReporter)reporter).init(pluginInfo, solrCore);
- } else if (reporter instanceof SolrClusterReporter) {
- ((SolrClusterReporter)reporter).init(pluginInfo, coreContainer);
+ if (reporter instanceof SolrCoreReporter) {
+ ((SolrCoreReporter)reporter).init(pluginInfo, solrCore);
+ } else if (reporter instanceof SolrCoreContainerReporter) {
+ ((SolrCoreContainerReporter)reporter).init(pluginInfo, coreContainer);
} else {
reporter.init(pluginInfo);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrClusterReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrClusterReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrClusterReporter.java
index 35802dc..081dff0 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrClusterReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrClusterReporter.java
@@ -36,8 +36,8 @@ import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrInfoBean;
import org.apache.solr.handler.admin.MetricsCollectorHandler;
+import org.apache.solr.metrics.SolrCoreContainerReporter;
import org.apache.solr.metrics.SolrMetricManager;
-import org.apache.solr.metrics.SolrMetricReporter;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,7 +90,7 @@ import static org.apache.solr.common.params.CommonParams.ID;
* </pre>
*
*/
-public class SolrClusterReporter extends SolrMetricReporter {
+public class SolrClusterReporter extends SolrCoreContainerReporter {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public static final String CLUSTER_GROUP = SolrMetricManager.overridableRegistryName(SolrInfoBean.Group.cluster.toString());
@@ -170,11 +170,6 @@ public class SolrClusterReporter extends SolrMetricReporter {
}
@Override
- public void init(PluginInfo pluginInfo) {
- throw new UnsupportedOperationException(getClass().getCanonicalName()+".init(PluginInfo) is not supported, use init(PluginInfo,CoreContainer) instead.");
- }
-
- @Override
protected void doInit() {
if (reports.isEmpty()) { // set defaults
reports = DEFAULT_REPORTS;
@@ -193,8 +188,9 @@ public class SolrClusterReporter extends SolrMetricReporter {
}
}
+ @Override
public void init(PluginInfo pluginInfo, CoreContainer cc) {
- super.init(pluginInfo);
+ super.init(pluginInfo, cc);
if (reporter != null) {
reporter.close();;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrShardReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrShardReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrShardReporter.java
index d07609d..c477e47 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrShardReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/solr/SolrShardReporter.java
@@ -31,7 +31,7 @@ import org.apache.solr.common.cloud.Replica;
import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.admin.MetricsCollectorHandler;
-import org.apache.solr.metrics.FilteringSolrMetricReporter;
+import org.apache.solr.metrics.SolrCoreReporter;
import org.apache.solr.metrics.SolrMetricManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,7 +59,7 @@ import com.codahale.metrics.MetricFilter;
* </reporter>
* </pre>
*/
-public class SolrShardReporter extends FilteringSolrMetricReporter {
+public class SolrShardReporter extends SolrCoreReporter {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public static final List<String> DEFAULT_FILTERS = new ArrayList(){{
@@ -92,11 +92,6 @@ public class SolrShardReporter extends FilteringSolrMetricReporter {
}
@Override
- public void init(PluginInfo pluginInfo) {
- throw new UnsupportedOperationException(getClass().getCanonicalName()+".init(PluginInfo) is not supported, use init(PluginInfo,SolrCore) instead.");
- }
-
- @Override
protected void doInit() {
if (filters.isEmpty()) {
filters = DEFAULT_FILTERS;
@@ -122,8 +117,9 @@ public class SolrShardReporter extends FilteringSolrMetricReporter {
}
}
+ @Override
public void init(PluginInfo pluginInfo, SolrCore core) {
- super.init(pluginInfo);
+ super.init(pluginInfo, core);
if (reporter != null) {
reporter.close();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/812db14f/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java
index 6b926bf..59952c3 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/solr/SolrCloudReportersTest.java
@@ -26,6 +26,8 @@ import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.metrics.AggregateMetric;
+import org.apache.solr.metrics.SolrCoreContainerReporter;
+import org.apache.solr.metrics.SolrCoreReporter;
import org.apache.solr.metrics.SolrMetricManager;
import org.apache.solr.metrics.SolrMetricReporter;
import org.apache.solr.metrics.reporters.SolrJmxReporter;
@@ -96,6 +98,9 @@ public class SolrCloudReportersTest extends SolrCloudTestCase {
assertNotNull(reporter);
assertTrue(reporter.toString(), reporter instanceof SolrClusterReporter);
assertEquals(5, reporter.getPeriod());
+ assertTrue(reporter.toString(), reporter instanceof SolrCoreContainerReporter);
+ SolrCoreContainerReporter solrCoreContainerReporter = (SolrCoreContainerReporter)reporter;
+ assertNotNull(solrCoreContainerReporter.getCoreContainer());
for (String registryName : metricManager.registryNames(".*\\.shard[0-9]\\.replica.*")) {
reporters = metricManager.getReporters(registryName);
jmxReporter = 0;
@@ -114,6 +119,9 @@ public class SolrCloudReportersTest extends SolrCloudTestCase {
assertNotNull(reporter);
assertTrue(reporter.toString(), reporter instanceof SolrShardReporter);
assertEquals(5, reporter.getPeriod());
+ assertTrue(reporter.toString(), reporter instanceof SolrCoreReporter);
+ SolrCoreReporter solrCoreReporter = (SolrCoreReporter)reporter;
+ assertNotNull(solrCoreReporter.getCore());
}
for (String registryName : metricManager.registryNames(".*\\.leader")) {
leaderRegistries++;