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/07/31 10:09:03 UTC

lucene-solr:master: SOLR-11036: Separately report disk space metrics for solr.data.home and core root directory.

Repository: lucene-solr
Updated Branches:
  refs/heads/master b1a65c8f5 -> 53472c4b9


SOLR-11036: Separately report disk space metrics for solr.data.home and core root directory.


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

Branch: refs/heads/master
Commit: 53472c4b93c1c7a2e3672712ae7387f5ef34f9d7
Parents: b1a65c8
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Mon Jul 31 12:08:51 2017 +0200
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Mon Jul 31 12:08:51 2017 +0200

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  2 ++
 .../org/apache/solr/core/CoreContainer.java     | 13 +++++++++--
 .../metrics/SolrMetricsIntegrationTest.java     | 24 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/53472c4b/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index cb6b887..2c4e436 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -586,6 +586,8 @@ Other Changes
 * SOLR-10756: Undeprecate ZkStateReader.updateClusterState(), mark as @lucene.internal, and rename to
   forciblyRefreshAllClusterStateSlow(). (hossman, shalin, Steve Rowe)
 
+* SOLR-11036: Separately report disk space metrics for solr.data.home and core root directory. (ab)
+
 ==================  6.7.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/53472c4b/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 a43af96..53a3bb3 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -557,10 +557,19 @@ public class CoreContainer {
         true, "lazy", SolrInfoBean.Category.CONTAINER.toString(), "cores");
     metricManager.registerGauge(null, registryName, () -> solrCores.getAllCoreNames().size() - solrCores.getLoadedCoreNames().size(),
         true, "unloaded", SolrInfoBean.Category.CONTAINER.toString(), "cores");
-    metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getTotalSpace(),
+    Path dataHome = cfg.getSolrDataHome() != null ? cfg.getSolrDataHome() : cfg.getCoreRootDirectory();
+    metricManager.registerGauge(null, registryName, () -> dataHome.toFile().getTotalSpace(),
         true, "totalSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs");
-    metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getUsableSpace(),
+    metricManager.registerGauge(null, registryName, () -> dataHome.toFile().getUsableSpace(),
         true, "usableSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs");
+    metricManager.registerGauge(null, registryName, () -> dataHome.toAbsolutePath().toString(),
+        true, "path", SolrInfoBean.Category.CONTAINER.toString(), "fs");
+    metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getTotalSpace(),
+        true, "totalSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs", "coreRoot");
+    metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getUsableSpace(),
+        true, "usableSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs", "coreRoot");
+    metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toAbsolutePath().toString(),
+        true, "path", SolrInfoBean.Category.CONTAINER.toString(), "fs", "coreRoot");
     // add version information
     metricManager.registerGauge(null, registryName, () -> this.getClass().getPackage().getSpecificationVersion(),
         true, "specification", SolrInfoBean.Category.CONTAINER.toString(), "version");

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/53472c4b/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 b2cb5f3..1a8eda8 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
@@ -22,6 +22,9 @@ import java.nio.file.Paths;
 import java.util.Map;
 import java.util.Random;
 
+import com.codahale.metrics.Gauge;
+import com.codahale.metrics.Metric;
+import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.Timer;
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.util.TestUtil;
@@ -150,4 +153,25 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
       assertFalse("Reporter " + reporterName + " was incorrectly closed: " + mockReporter, mockReporter.didClose);
     }
   }
+
+  @Test
+  public void testCoreContainerMetrics() throws Exception {
+    String registryName = SolrMetricManager.getRegistryName(SolrInfoBean.Group.node);
+    assertTrue(cc.getMetricManager().registryNames().toString(), cc.getMetricManager().registryNames().contains(registryName));
+    MetricRegistry registry = cc.getMetricManager().registry(registryName);
+    Map<String, Metric> metrics = registry.getMetrics();
+    assertTrue(metrics.containsKey("CONTAINER.cores.loaded"));
+    assertTrue(metrics.containsKey("CONTAINER.cores.lazy"));
+    assertTrue(metrics.containsKey("CONTAINER.cores.unloaded"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.totalSpace"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.usableSpace"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.path"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.coreRoot.totalSpace"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.coreRoot.usableSpace"));
+    assertTrue(metrics.containsKey("CONTAINER.fs.coreRoot.path"));
+    assertTrue(metrics.containsKey("CONTAINER.version.specification"));
+    assertTrue(metrics.containsKey("CONTAINER.version.implementation"));
+    Gauge<?> g = (Gauge<?>)metrics.get("CONTAINER.fs.path");
+    assertEquals(g.getValue(), cc.getResourceLoader().getInstancePath().toAbsolutePath().toString());
+  }
 }