You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by nn...@apache.org on 2017/03/07 00:27:05 UTC

geode git commit: GEODE-2596: Lucene metrics moved to public API

Repository: geode
Updated Branches:
  refs/heads/develop eb59268bc -> 946ff6ee4


GEODE-2596: Lucene metrics moved to public API

	* LuceneIndexMetrics and LuceneServiceMXBean were moved to org.apache.geode.cache.lucene.management
	* They are now public API

	This closes #414


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/946ff6ee
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/946ff6ee
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/946ff6ee

Branch: refs/heads/develop
Commit: 946ff6ee49f8061dc7f3c11b43bf823b4314b109
Parents: eb59268
Author: nabarun <nn...@pivotal.io>
Authored: Mon Mar 6 11:59:33 2017 -0800
Committer: nabarun <nn...@pivotal.io>
Committed: Mon Mar 6 16:25:24 2017 -0800

----------------------------------------------------------------------
 .../internal/management/LuceneIndexMetrics.java | 190 -------------------
 .../management/LuceneIndexStatsMonitor.java     |   2 +-
 .../management/LuceneServiceBridge.java         |   2 +-
 .../internal/management/LuceneServiceMBean.java |   2 +
 .../management/LuceneServiceMXBean.java         |  58 ------
 .../lucene/management/LuceneIndexMetrics.java   | 190 +++++++++++++++++++
 .../lucene/management/LuceneServiceMXBean.java  |  58 ++++++
 .../management/LuceneManagementDUnitTest.java   |   2 +
 8 files changed, 254 insertions(+), 250 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexMetrics.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexMetrics.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexMetrics.java
deleted file mode 100644
index 999d8b3..0000000
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexMetrics.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * 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.geode.cache.lucene.internal.management;
-
-import java.beans.ConstructorProperties;
-
-public class LuceneIndexMetrics {
-
-  private final String regionPath;
-
-  private final String indexName;
-
-  private final int queryExecutions;
-
-  private final long queryExecutionTime;
-
-  private final float queryRate;
-
-  private final long queryRateAverageLatency;
-
-  private final int queryExecutionsInProgress;
-
-  private final long queryExecutionTotalHits;
-
-  private final int updates;
-
-  private final long updateTime;
-
-  private final float updateRate;
-
-  private final long updateRateAverageLatency;
-
-  private final int updatesInProgress;
-
-  private final int commits;
-
-  private final long commitTime;
-
-  private final float commitRate;
-
-  private final long commitRateAverageLatency;
-
-  private final int commitsInProgress;
-
-  private final int documents;
-
-  /**
-   * This constructor is to be used by internal JMX framework only. A user should not try to create
-   * an instance of this class.
-   */
-  @ConstructorProperties({"regionPath", "indexName", "queryExecutions", "queryExecutionTime",
-      "queryRate", "queryRateAverageLatency", "queryExecutionsInProgress",
-      "queryExecutionTotalHits", "updates", "updateTime", "updateRate", "updateRateAverageLatency",
-      "updatesInProgress", "commits", "commitTime", "commitRate", "commitRateAverageLatency",
-      "commitsInProgress", "documents"})
-  public LuceneIndexMetrics(String regionPath, String indexName, int queryExecutions,
-      long queryExecutionTime, float queryRate, long queryRateAverageLatency,
-      int queryExecutionsInProgress, long queryExecutionTotalHits, int updates, long updateTime,
-      float updateRate, long updateRateAverageLatency, int updatesInProgress, int commits,
-      long commitTime, float commitRate, long commitRateAverageLatency, int commitsInProgress,
-      int documents) {
-    this.regionPath = regionPath;
-    this.indexName = indexName;
-    this.queryExecutions = queryExecutions;
-    this.queryExecutionTime = queryExecutionTime;
-    this.queryRate = queryRate;
-    this.queryRateAverageLatency = queryRateAverageLatency;
-    this.queryExecutionsInProgress = queryExecutionsInProgress;
-    this.queryExecutionTotalHits = queryExecutionTotalHits;
-    this.updates = updates;
-    this.updateTime = updateTime;
-    this.updateRate = updateRate;
-    this.updateRateAverageLatency = updateRateAverageLatency;
-    this.updatesInProgress = updatesInProgress;
-    this.commits = commits;
-    this.commitTime = commitTime;
-    this.commitRate = commitRate;
-    this.commitRateAverageLatency = commitRateAverageLatency;
-    this.commitsInProgress = commitsInProgress;
-    this.documents = documents;
-  }
-
-  public String getRegionPath() {
-    return this.regionPath;
-  }
-
-  public String getIndexName() {
-    return this.indexName;
-  }
-
-  public int getQueryExecutions() {
-    return this.queryExecutions;
-  }
-
-  public long getQueryExecutionTime() {
-    return this.queryExecutionTime;
-  }
-
-  public float getQueryRate() {
-    return this.queryRate;
-  }
-
-  public long getQueryRateAverageLatency() {
-    return this.queryRateAverageLatency;
-  }
-
-  public int getQueryExecutionsInProgress() {
-    return this.queryExecutionsInProgress;
-  }
-
-  public long getQueryExecutionTotalHits() {
-    return this.queryExecutionTotalHits;
-  }
-
-  public int getUpdates() {
-    return this.updates;
-  }
-
-  public long getUpdateTime() {
-    return this.updateTime;
-  }
-
-  public float getUpdateRate() {
-    return this.updateRate;
-  }
-
-  public long getUpdateRateAverageLatency() {
-    return this.updateRateAverageLatency;
-  }
-
-  public int getUpdatesInProgress() {
-    return this.updatesInProgress;
-  }
-
-  public int getCommits() {
-    return this.commits;
-  }
-
-  public long getCommitTime() {
-    return this.commitTime;
-  }
-
-  public float getCommitRate() {
-    return this.commitRate;
-  }
-
-  public long getCommitRateAverageLatency() {
-    return this.commitRateAverageLatency;
-  }
-
-  public int getCommitsInProgress() {
-    return this.commitsInProgress;
-  }
-
-  public int getDocuments() {
-    return documents;
-  }
-
-  @Override
-  public String toString() {
-    return new StringBuilder().append(getClass().getSimpleName()).append("[").append("regionPath=")
-        .append(this.regionPath).append("; indexName=").append(this.indexName)
-        .append("; queryExecutions=").append(this.queryExecutions).append("; queryExecutionTime=")
-        .append(this.queryExecutionTime).append("; queryRate=").append(this.queryRate)
-        .append("; queryRateAverageLatency=").append(this.queryRateAverageLatency)
-        .append("; queryExecutionsInProgress=").append(this.queryExecutionsInProgress)
-        .append("; queryExecutionTotalHits=").append(this.queryExecutionTotalHits)
-        .append("; updates=").append(this.updates).append("; updateTime=").append(this.updateTime)
-        .append("; updateRate=").append(this.updateRate).append("; updateRateAverageLatency=")
-        .append(this.updateRateAverageLatency).append("; updatesInProgress=")
-        .append(this.updatesInProgress).append("; commits=").append(this.commits)
-        .append("; commitTime=").append(this.commitTime).append("; commitRate=")
-        .append(this.commitRate).append("; commitRateAverageLatency=")
-        .append(this.commitRateAverageLatency).append("; commitsInProgress=")
-        .append(this.commitsInProgress).append("; documents=").append(this.documents).append("]")
-        .toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexStatsMonitor.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexStatsMonitor.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexStatsMonitor.java
index b28541f..8d7d7ca 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexStatsMonitor.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneIndexStatsMonitor.java
@@ -16,7 +16,7 @@ package org.apache.geode.cache.lucene.internal.management;
 
 import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.internal.LuceneIndexImpl;
-import org.apache.geode.management.internal.ManagementStrings;
+import org.apache.geode.cache.lucene.management.LuceneIndexMetrics;
 import org.apache.geode.management.internal.beans.stats.MBeanStatsMonitor;
 import org.apache.geode.management.internal.beans.stats.StatType;
 import org.apache.geode.management.internal.beans.stats.StatsAverageLatency;

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceBridge.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceBridge.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceBridge.java
index b18b376..eff503a 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceBridge.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceBridge.java
@@ -18,7 +18,7 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneService;
 import org.apache.geode.cache.lucene.internal.LuceneIndexImpl;
-import org.apache.geode.cache.lucene.internal.LuceneIndexStats;
+import org.apache.geode.cache.lucene.management.LuceneIndexMetrics;
 
 import java.util.ArrayList;
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMBean.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMBean.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMBean.java
index d2739fe..2cfc42e 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMBean.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMBean.java
@@ -16,6 +16,8 @@ package org.apache.geode.cache.lucene.internal.management;
 
 import org.apache.geode.cache.lucene.LuceneIndex;
 import org.apache.geode.cache.lucene.LuceneService;
+import org.apache.geode.cache.lucene.management.LuceneIndexMetrics;
+import org.apache.geode.cache.lucene.management.LuceneServiceMXBean;
 import org.apache.geode.management.internal.beans.CacheServiceMBeanBase;
 
 import javax.management.NotificationBroadcasterSupport;

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMXBean.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMXBean.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMXBean.java
deleted file mode 100644
index 23be091..0000000
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/management/LuceneServiceMXBean.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.geode.cache.lucene.internal.management;
-
-import org.apache.geode.management.internal.security.ResourceOperation;
-import org.apache.geode.security.ResourcePermission.Operation;
-import org.apache.geode.security.ResourcePermission.Resource;
-
-/**
- * MBean that provides access to the {@link org.apache.geode.cache.lucene.LuceneService}.
- */
-@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
-public interface LuceneServiceMXBean {
-
-  /**
-   * Returns an array of {@link LuceneIndexMetrics} for the
-   * {@link org.apache.geode.cache.lucene.LuceneIndex} instances defined in this member
-   *
-   * @return an array of LuceneIndexMetrics for the LuceneIndexes defined in this member
-   */
-  public LuceneIndexMetrics[] listIndexMetrics();
-
-  /**
-   * Returns an array of {@link LuceneIndexMetrics} for the
-   * {@link org.apache.geode.cache.lucene.LuceneIndex} instances defined on the input region in this
-   * member
-   *
-   * @param regionPath The full path of the region to retrieve
-   *
-   * @return an array of LuceneIndexMetrics for the LuceneIndex instances defined on the input
-   *         region in this member
-   */
-  public LuceneIndexMetrics[] listIndexMetrics(String regionPath);
-
-  /**
-   * Returns a {@link LuceneIndexMetrics} for the {@link org.apache.geode.cache.lucene.LuceneIndex}
-   * with the input index name defined on the input region in this member.
-   *
-   * @param regionPath The full path of the region to retrieve
-   * @param indexName The name of the index to retrieve
-   *
-   * @return a LuceneIndexMetrics for the LuceneIndex with the input index name defined on the input
-   *         region in this member.
-   */
-  public LuceneIndexMetrics listIndexMetrics(String regionPath, String indexName);
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneIndexMetrics.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneIndexMetrics.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneIndexMetrics.java
new file mode 100644
index 0000000..de89758
--- /dev/null
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneIndexMetrics.java
@@ -0,0 +1,190 @@
+/*
+ * 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.geode.cache.lucene.management;
+
+import java.beans.ConstructorProperties;
+
+public class LuceneIndexMetrics {
+
+  private final String regionPath;
+
+  private final String indexName;
+
+  private final int queryExecutions;
+
+  private final long queryExecutionTime;
+
+  private final float queryRate;
+
+  private final long queryRateAverageLatency;
+
+  private final int queryExecutionsInProgress;
+
+  private final long queryExecutionTotalHits;
+
+  private final int updates;
+
+  private final long updateTime;
+
+  private final float updateRate;
+
+  private final long updateRateAverageLatency;
+
+  private final int updatesInProgress;
+
+  private final int commits;
+
+  private final long commitTime;
+
+  private final float commitRate;
+
+  private final long commitRateAverageLatency;
+
+  private final int commitsInProgress;
+
+  private final int documents;
+
+  /**
+   * This constructor is to be used by internal JMX framework only. A user should not try to create
+   * an instance of this class.
+   */
+  @ConstructorProperties({"regionPath", "indexName", "queryExecutions", "queryExecutionTime",
+      "queryRate", "queryRateAverageLatency", "queryExecutionsInProgress",
+      "queryExecutionTotalHits", "updates", "updateTime", "updateRate", "updateRateAverageLatency",
+      "updatesInProgress", "commits", "commitTime", "commitRate", "commitRateAverageLatency",
+      "commitsInProgress", "documents"})
+  public LuceneIndexMetrics(String regionPath, String indexName, int queryExecutions,
+      long queryExecutionTime, float queryRate, long queryRateAverageLatency,
+      int queryExecutionsInProgress, long queryExecutionTotalHits, int updates, long updateTime,
+      float updateRate, long updateRateAverageLatency, int updatesInProgress, int commits,
+      long commitTime, float commitRate, long commitRateAverageLatency, int commitsInProgress,
+      int documents) {
+    this.regionPath = regionPath;
+    this.indexName = indexName;
+    this.queryExecutions = queryExecutions;
+    this.queryExecutionTime = queryExecutionTime;
+    this.queryRate = queryRate;
+    this.queryRateAverageLatency = queryRateAverageLatency;
+    this.queryExecutionsInProgress = queryExecutionsInProgress;
+    this.queryExecutionTotalHits = queryExecutionTotalHits;
+    this.updates = updates;
+    this.updateTime = updateTime;
+    this.updateRate = updateRate;
+    this.updateRateAverageLatency = updateRateAverageLatency;
+    this.updatesInProgress = updatesInProgress;
+    this.commits = commits;
+    this.commitTime = commitTime;
+    this.commitRate = commitRate;
+    this.commitRateAverageLatency = commitRateAverageLatency;
+    this.commitsInProgress = commitsInProgress;
+    this.documents = documents;
+  }
+
+  public String getRegionPath() {
+    return this.regionPath;
+  }
+
+  public String getIndexName() {
+    return this.indexName;
+  }
+
+  public int getQueryExecutions() {
+    return this.queryExecutions;
+  }
+
+  public long getQueryExecutionTime() {
+    return this.queryExecutionTime;
+  }
+
+  public float getQueryRate() {
+    return this.queryRate;
+  }
+
+  public long getQueryRateAverageLatency() {
+    return this.queryRateAverageLatency;
+  }
+
+  public int getQueryExecutionsInProgress() {
+    return this.queryExecutionsInProgress;
+  }
+
+  public long getQueryExecutionTotalHits() {
+    return this.queryExecutionTotalHits;
+  }
+
+  public int getUpdates() {
+    return this.updates;
+  }
+
+  public long getUpdateTime() {
+    return this.updateTime;
+  }
+
+  public float getUpdateRate() {
+    return this.updateRate;
+  }
+
+  public long getUpdateRateAverageLatency() {
+    return this.updateRateAverageLatency;
+  }
+
+  public int getUpdatesInProgress() {
+    return this.updatesInProgress;
+  }
+
+  public int getCommits() {
+    return this.commits;
+  }
+
+  public long getCommitTime() {
+    return this.commitTime;
+  }
+
+  public float getCommitRate() {
+    return this.commitRate;
+  }
+
+  public long getCommitRateAverageLatency() {
+    return this.commitRateAverageLatency;
+  }
+
+  public int getCommitsInProgress() {
+    return this.commitsInProgress;
+  }
+
+  public int getDocuments() {
+    return documents;
+  }
+
+  @Override
+  public String toString() {
+    return new StringBuilder().append(getClass().getSimpleName()).append("[").append("regionPath=")
+        .append(this.regionPath).append("; indexName=").append(this.indexName)
+        .append("; queryExecutions=").append(this.queryExecutions).append("; queryExecutionTime=")
+        .append(this.queryExecutionTime).append("; queryRate=").append(this.queryRate)
+        .append("; queryRateAverageLatency=").append(this.queryRateAverageLatency)
+        .append("; queryExecutionsInProgress=").append(this.queryExecutionsInProgress)
+        .append("; queryExecutionTotalHits=").append(this.queryExecutionTotalHits)
+        .append("; updates=").append(this.updates).append("; updateTime=").append(this.updateTime)
+        .append("; updateRate=").append(this.updateRate).append("; updateRateAverageLatency=")
+        .append(this.updateRateAverageLatency).append("; updatesInProgress=")
+        .append(this.updatesInProgress).append("; commits=").append(this.commits)
+        .append("; commitTime=").append(this.commitTime).append("; commitRate=")
+        .append(this.commitRate).append("; commitRateAverageLatency=")
+        .append(this.commitRateAverageLatency).append("; commitsInProgress=")
+        .append(this.commitsInProgress).append("; documents=").append(this.documents).append("]")
+        .toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneServiceMXBean.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneServiceMXBean.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneServiceMXBean.java
new file mode 100644
index 0000000..80ad575
--- /dev/null
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/LuceneServiceMXBean.java
@@ -0,0 +1,58 @@
+/*
+ * 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.geode.cache.lucene.management;
+
+import org.apache.geode.management.internal.security.ResourceOperation;
+import org.apache.geode.security.ResourcePermission.Operation;
+import org.apache.geode.security.ResourcePermission.Resource;
+
+/**
+ * MBean that provides access to the {@link org.apache.geode.cache.lucene.LuceneService}.
+ */
+@ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
+public interface LuceneServiceMXBean {
+
+  /**
+   * Returns an array of {@link LuceneIndexMetrics} for the
+   * {@link org.apache.geode.cache.lucene.LuceneIndex} instances defined in this member
+   *
+   * @return an array of LuceneIndexMetrics for the LuceneIndexes defined in this member
+   */
+  public LuceneIndexMetrics[] listIndexMetrics();
+
+  /**
+   * Returns an array of {@link LuceneIndexMetrics} for the
+   * {@link org.apache.geode.cache.lucene.LuceneIndex} instances defined on the input region in this
+   * member
+   *
+   * @param regionPath The full path of the region to retrieve
+   *
+   * @return an array of LuceneIndexMetrics for the LuceneIndex instances defined on the input
+   *         region in this member
+   */
+  public LuceneIndexMetrics[] listIndexMetrics(String regionPath);
+
+  /**
+   * Returns a {@link LuceneIndexMetrics} for the {@link org.apache.geode.cache.lucene.LuceneIndex}
+   * with the input index name defined on the input region in this member.
+   *
+   * @param regionPath The full path of the region to retrieve
+   * @param indexName The name of the index to retrieve
+   *
+   * @return a LuceneIndexMetrics for the LuceneIndex with the input index name defined on the input
+   *         region in this member.
+   */
+  public LuceneIndexMetrics listIndexMetrics(String regionPath, String indexName);
+}

http://git-wip-us.apache.org/repos/asf/geode/blob/946ff6ee/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/management/LuceneManagementDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/management/LuceneManagementDUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/management/LuceneManagementDUnitTest.java
index 73c4183..36a8e55 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/management/LuceneManagementDUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/management/LuceneManagementDUnitTest.java
@@ -19,6 +19,8 @@ import org.apache.geode.cache.lucene.LuceneQuery;
 import org.apache.geode.cache.lucene.LuceneQueryException;
 import org.apache.geode.cache.lucene.LuceneService;
 import org.apache.geode.cache.lucene.LuceneServiceProvider;
+import org.apache.geode.cache.lucene.management.LuceneIndexMetrics;
+import org.apache.geode.cache.lucene.management.LuceneServiceMXBean;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.internal.cache.GemFireCacheImpl;
 import org.apache.geode.management.ManagementTestBase;