You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2017/06/26 19:10:19 UTC

lucene-solr:master: SOLR-10823: Add reporting period to SolrMetricReporter base class.

Repository: lucene-solr
Updated Branches:
  refs/heads/master 7c448623c -> 44860bd48


SOLR-10823: Add reporting period to SolrMetricReporter base class.


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

Branch: refs/heads/master
Commit: 44860bd48a31c76e11808d914be016df7196596a
Parents: 7c44862
Author: Christine Poerschke <cp...@apache.org>
Authored: Mon Jun 26 16:26:37 2017 +0100
Committer: Christine Poerschke <cp...@apache.org>
Committed: Mon Jun 26 16:26:37 2017 +0100

----------------------------------------------------------------------
 solr/CHANGES.txt                                     |  2 ++
 .../org/apache/solr/metrics/SolrMetricReporter.java  | 15 +++++++++++++++
 .../solr/metrics/reporters/SolrGangliaReporter.java  |  5 -----
 .../solr/metrics/reporters/SolrGraphiteReporter.java |  5 -----
 .../solr/metrics/reporters/SolrJmxReporter.java      |  5 ++++-
 .../solr/metrics/reporters/SolrSlf4jReporter.java    |  5 -----
 .../metrics/reporters/solr/SolrClusterReporter.java  | 12 +-----------
 .../metrics/reporters/solr/SolrShardReporter.java    | 12 +-----------
 .../apache/solr/metrics/SolrMetricManagerTest.java   |  5 +++++
 .../solr/metrics/reporters/MockMetricReporter.java   |  3 +++
 10 files changed, 31 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 800b645..5b82f1e 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -517,6 +517,8 @@ Other Changes
   with point fields and provides control over dynamic fields used for the raw amount and currency
   code sub-fields.  (hossman, Steve Rowe)
 
+* SOLR-10823: Add reporting period to SolrMetricReporter base class. (Christine Poerschke)
+
 ==================  6.6.1 ==================
 
 Bug Fixes

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
index 222377b..3f7f73c 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
@@ -36,6 +36,7 @@ public abstract class SolrMetricReporter implements Closeable, PluginInfoInitial
   protected final SolrMetricManager metricManager;
   protected PluginInfo pluginInfo;
   protected boolean enabled = true;
+  protected int period = SolrMetricManager.DEFAULT_CLOUD_REPORTER_PERIOD;
 
   /**
    * Create a reporter for metrics managed in a named registry.
@@ -86,6 +87,20 @@ public abstract class SolrMetricReporter implements Closeable, PluginInfoInitial
   }
 
   /**
+   * @param period - in seconds
+   */
+  public void setPeriod(int period) {
+    this.period = period;
+  }
+
+  /**
+   * @return period, in seconds
+   */
+  public int getPeriod() {
+    return period;
+  }
+
+  /**
    * Get the effective {@link PluginInfo} instance that was used for
    * initialization of this plugin.
    * @return plugin info, or null if not yet initialized.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGangliaReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGangliaReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGangliaReporter.java
index 8d87940..bf95ef4 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGangliaReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGangliaReporter.java
@@ -35,7 +35,6 @@ public class SolrGangliaReporter extends SolrMetricReporter {
   private String host = null;
   private int port = -1;
   private boolean multicast;
-  private int period = 60;
   private String instancePrefix = null;
   private List<String> filters = new ArrayList<>();
   private boolean testing;
@@ -88,10 +87,6 @@ public class SolrGangliaReporter extends SolrMetricReporter {
     }
   }
 
-  public void setPeriod(int period) {
-    this.period = period;
-  }
-
   public void setMulticast(boolean multicast) {
     this.multicast = multicast;
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGraphiteReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGraphiteReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGraphiteReporter.java
index e74bb35..c097718 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGraphiteReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrGraphiteReporter.java
@@ -36,7 +36,6 @@ public class SolrGraphiteReporter extends SolrMetricReporter {
 
   private String host = null;
   private int port = -1;
-  private int period = 60;
   private boolean pickled = false;
   private String instancePrefix = null;
   private List<String> filters = new ArrayList<>();
@@ -90,10 +89,6 @@ public class SolrGraphiteReporter extends SolrMetricReporter {
     this.pickled = pickled;
   }
 
-  public void setPeriod(int period) {
-    this.period = period;
-  }
-
   @Override
   protected void doInit() {
     if (reporter != null) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
index 68a94ef..170dd33 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
@@ -70,6 +70,7 @@ public class SolrJmxReporter extends SolrMetricReporter {
    */
   public SolrJmxReporter(SolrMetricManager metricManager, String registryName) {
     super(metricManager, registryName);
+    period = 0; // setting to zero to indicate not applicable
     setDomain(registryName);
   }
 
@@ -151,7 +152,9 @@ public class SolrJmxReporter extends SolrMetricReporter {
    */
   @Override
   protected void validate() throws IllegalStateException {
-    // Nothing to validate
+    if (period != 0) {
+      throw new IllegalStateException("Init argument 'period' is not supported for "+getClass().getCanonicalName());
+    }
   }
 
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/java/org/apache/solr/metrics/reporters/SolrSlf4jReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrSlf4jReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrSlf4jReporter.java
index e301885..e2c6015 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrSlf4jReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrSlf4jReporter.java
@@ -47,7 +47,6 @@ public class SolrSlf4jReporter extends SolrMetricReporter {
   @SuppressWarnings("unused") // we need this to pass validate-source-patterns
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private int period = 60;
   private String instancePrefix = null;
   private String logger = null;
   private List<String> filters = new ArrayList<>();
@@ -91,10 +90,6 @@ public class SolrSlf4jReporter extends SolrMetricReporter {
     this.logger = logger;
   }
 
-  public void setPeriod(int period) {
-    this.period = period;
-  }
-
   @Override
   protected void doInit() {
     if (instancePrefix == null) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/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 1e64b8a..d8714d4 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
@@ -124,7 +124,6 @@ public class SolrClusterReporter extends SolrMetricReporter {
   }};
 
   private String handler = MetricsCollectorHandler.HANDLER_PATH;
-  private int period = SolrMetricManager.DEFAULT_CLOUD_REPORTER_PERIOD;
   private List<SolrReporter.Report> reports = new ArrayList<>();
 
   private SolrReporter reporter;
@@ -143,10 +142,6 @@ public class SolrClusterReporter extends SolrMetricReporter {
     this.handler = handler;
   }
 
-  public void setPeriod(int period) {
-    this.period = period;
-  }
-
   public void setReport(List<Map> reportConfig) {
     if (reportConfig == null || reportConfig.isEmpty()) {
       return;
@@ -169,11 +164,6 @@ public class SolrClusterReporter extends SolrMetricReporter {
     }
   }
 
-  // for unit tests
-  int getPeriod() {
-    return period;
-  }
-
   List<SolrReporter.Report> getReports() {
     return reports;
   }
@@ -187,7 +177,7 @@ public class SolrClusterReporter extends SolrMetricReporter {
 
   @Override
   protected void validate() throws IllegalStateException {
-    // Nothing to validate
+    // (period < 1) means "don't start reporter" and so no (period > 0) validation needed
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/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 b3b055d..e9710b8 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
@@ -70,7 +70,6 @@ public class SolrShardReporter extends SolrMetricReporter {
   }};
 
   private String handler = MetricsCollectorHandler.HANDLER_PATH;
-  private int period = SolrMetricManager.DEFAULT_CLOUD_REPORTER_PERIOD;
   private List<String> filters = new ArrayList<>();
 
   private SolrReporter reporter;
@@ -90,10 +89,6 @@ public class SolrShardReporter extends SolrMetricReporter {
     this.handler = handler;
   }
 
-  public void setPeriod(int period) {
-    this.period = period;
-  }
-
   public void setFilter(List<String> filterConfig) {
     if (filterConfig == null || filterConfig.isEmpty()) {
       return;
@@ -107,11 +102,6 @@ public class SolrShardReporter extends SolrMetricReporter {
     }
   }
 
-  // for unit tests
-  int getPeriod() {
-    return period;
-  }
-
   @Override
   protected void doInit() {
     if (filters.isEmpty()) {
@@ -122,7 +112,7 @@ public class SolrShardReporter extends SolrMetricReporter {
 
   @Override
   protected void validate() throws IllegalStateException {
-    // Nothing to validate
+    // (period < 1) means "don't start reporter" and so no (period > 0) validation needed
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
index d306119..5739e53 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
@@ -249,6 +249,11 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
 
   }
 
+  @Test
+  public void testDefaultCloudReporterPeriodUnchanged() throws Exception {
+    assertEquals(60, SolrMetricManager.DEFAULT_CLOUD_REPORTER_PERIOD);
+  }
+
   private PluginInfo createPluginInfo(String name, String group, String registry) {
     Map<String,String> attrs = new HashMap<>();
     attrs.put("name", name);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/44860bd4/solr/core/src/test/org/apache/solr/metrics/reporters/MockMetricReporter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/MockMetricReporter.java b/solr/core/src/test/org/apache/solr/metrics/reporters/MockMetricReporter.java
index e6110ba..f815c7c 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/MockMetricReporter.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/MockMetricReporter.java
@@ -53,6 +53,9 @@ public class MockMetricReporter extends SolrMetricReporter {
     if (configurable == null) {
       throw new IllegalStateException("MockMetricReporter::configurable not defined.");
     }
+    if (period < 1) {
+      throw new IllegalStateException("Init argument 'period' is in time unit 'seconds' and must be at least 1.");
+    }
   }
 
   public void setConfigurable(String configurable) {