From 40f999b08e8dc8b515d83c0a56b3e96d84547f5d Mon Sep 17 00:00:00 2001 From: Andrzej Bialecki Date: Mon, 28 Aug 2017 17:58:16 +0200 Subject: [PATCH] SOLR-11281: Remove the diagnostic additions and apply a patch from Jason Gerlowski. --- .../metrics/reporters/SolrSlf4jReporter.java | 44 +------------------ .../reporters/SolrSlf4jReporterTest.java | 20 ++++++--- 2 files changed, 14 insertions(+), 50 deletions(-) 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 bf7e9d39864..8043a78d1ca 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 @@ -57,7 +57,6 @@ public class SolrSlf4jReporter extends FilteringSolrMetricReporter { private String logger = null; private Slf4jReporter reporter; private boolean active; - private DiagnosticMetricRegistry diagnosticMetricRegistry; /** * Create a SLF4J reporter for metrics managed in a named registry. @@ -85,10 +84,8 @@ public class SolrSlf4jReporter extends FilteringSolrMetricReporter { } else { instancePrefix = instancePrefix + "." + registryName; } - MetricRegistry registry = metricManager.registry(registryName); - diagnosticMetricRegistry = new DiagnosticMetricRegistry(registry); Slf4jReporter.Builder builder = Slf4jReporter - .forRegistry(diagnosticMetricRegistry) + .forRegistry(metricManager.registry(registryName)) .convertRatesTo(TimeUnit.SECONDS) .convertDurationsTo(TimeUnit.MILLISECONDS); @@ -133,43 +130,4 @@ public class SolrSlf4jReporter extends FilteringSolrMetricReporter { boolean isActive() { return active; } - - // for unit tests - int getCount() { - return diagnosticMetricRegistry != null ? diagnosticMetricRegistry.count : -1; - } - - static class DiagnosticMetricRegistry extends MetricRegistry { - MetricRegistry delegate; - int count = 0; - DiagnosticMetricRegistry(MetricRegistry delegate) { - this.delegate = delegate; - } - - @Override - public SortedMap getCounters(MetricFilter filter) { - return delegate.getCounters(filter); - } - - @Override - public SortedMap getHistograms(MetricFilter filter) { - return delegate.getHistograms(filter); - } - - @Override - public SortedMap getMeters(MetricFilter filter) { - return delegate.getMeters(filter); - } - - @Override - public SortedMap getTimers(MetricFilter filter) { - return delegate.getTimers(filter); - } - - @Override - public SortedMap getGauges(MetricFilter filter) { - count++; - return delegate.getGauges(filter); - } - } } diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrSlf4jReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrSlf4jReporterTest.java index d827f86ff4e..e3a50213271 100644 --- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrSlf4jReporterTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrSlf4jReporterTest.java @@ -17,6 +17,7 @@ package org.apache.solr.metrics.reporters; +import java.lang.invoke.MethodHandles; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; @@ -34,14 +35,18 @@ import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricReporter; import org.apache.solr.util.TestHarness; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * */ public class SolrSlf4jReporterTest extends SolrTestCaseJ4 { + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @Test public void testReporter() throws Exception { + ensureLoggingConfiguredAppropriately(); LogWatcherConfig watcherCfg = new LogWatcherConfig(true, null, null, 100); LogWatcher watcher = LogWatcher.newRegisteredLogWatcher(watcherCfg, null); watcher.setThreshold("INFO"); @@ -78,19 +83,20 @@ public class SolrSlf4jReporterTest extends SolrTestCaseJ4 { } Thread.sleep(5000); - int count1 = ((SolrSlf4jReporter)reporter1).getCount(); - assertTrue("test1 count should be greater than 0", count1 > 0); - int count2 = ((SolrSlf4jReporter)reporter2).getCount(); - assertTrue("test2 count should be greater than 0", count1 > 0); - SolrDocumentList history = watcher.getHistory(-1, null); // dot-separated names are treated like class names and collapsed // in regular log output, but here we get the full name if (history.stream().filter(d -> "solr.node".equals(d.getFirstValue("logger"))).count() == 0) { - fail("count1=" + count1 + ", count2=" + count2 + " - no 'solr.node' logs in: " + history.toString()); + fail("No 'solr.node' logs in: " + history.toString()); } if (history.stream().filter(d -> "foobar".equals(d.getFirstValue("logger"))).count() == 0) { - fail("count1=" + count1 + ", count2=" + count2 + " - no 'foobar' logs in: " + history.toString()); + fail("No 'foobar' logs in: " + history.toString()); + } + } + + private static void ensureLoggingConfiguredAppropriately() throws Exception { + if (! log.isInfoEnabled()) { + fail("Test requires that log-level is at-least INFO, but INFO is disabled"); } } }