This is an automated email from the ASF dual-hosted git repository.

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new b7b87340b RATIS-1703. Move MetricsReporting and JvmMetrics to impl. 
(#741)
b7b87340b is described below

commit b7b87340b9ef5197fd751dd1a5dd1f9b68b8ffab
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Wed Sep 14 00:26:17 2022 +0800

    RATIS-1703. Move MetricsReporting and JvmMetrics to impl. (#741)
---
 .../ratis/examples/filestore/cli/Server.java       |  4 +-
 .../org/apache/ratis/metrics/MetricsReporting.java | 75 --------------------
 .../apache/ratis/metrics/RatisMetricRegistry.java  | 31 ---------
 .../{JVMMetrics.java => impl/JvmMetrics.java}      | 18 +++--
 .../ratis/metrics/impl/MetricRegistriesImpl.java   |  1 -
 .../ratis/metrics/impl/MetricsReporting.java       | 80 ++++++++++++++++++++++
 .../metrics/impl/RatisMetricRegistryImpl.java      | 41 ++++-------
 .../metrics/{ => impl}/RatisObjectNameFactory.java | 16 ++---
 .../apache/ratis/grpc/TestGrpcMessageMetrics.java  |  4 +-
 .../ratis/server/raftlog/TestRaftLogMetrics.java   | 14 ++--
 10 files changed, 125 insertions(+), 159 deletions(-)

diff --git 
a/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Server.java
 
b/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Server.java
index f6af36858..5204ee21b 100644
--- 
a/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Server.java
+++ 
b/ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/Server.java
@@ -27,7 +27,7 @@ import org.apache.ratis.examples.common.SubCommandBase;
 import org.apache.ratis.examples.filestore.FileStoreCommon;
 import org.apache.ratis.examples.filestore.FileStoreStateMachine;
 import org.apache.ratis.grpc.GrpcConfigKeys;
-import org.apache.ratis.metrics.JVMMetrics;
+import org.apache.ratis.metrics.impl.JvmMetrics;
 import org.apache.ratis.netty.NettyConfigKeys;
 import org.apache.ratis.protocol.RaftGroup;
 import org.apache.ratis.protocol.RaftGroupId;
@@ -74,7 +74,7 @@ public class Server extends SubCommandBase {
 
   @Override
   public void run() throws Exception {
-    JVMMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
+    JvmMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
 
     RaftPeerId peerId = RaftPeerId.valueOf(id);
     RaftProperties properties = new RaftProperties();
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricsReporting.java 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricsReporting.java
deleted file mode 100644
index efaa1a45d..000000000
--- a/ratis-metrics/src/main/java/org/apache/ratis/metrics/MetricsReporting.java
+++ /dev/null
@@ -1,75 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.ratis.metrics;
-
-import org.apache.ratis.thirdparty.com.codahale.metrics.ConsoleReporter;
-import org.apache.ratis.thirdparty.com.codahale.metrics.jmx.JmxReporter;
-import org.apache.ratis.util.TimeDuration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.concurrent.TimeUnit;
-import java.util.function.Consumer;
-
-public final class MetricsReporting {
-  public static final Logger LOG = 
LoggerFactory.getLogger(MetricsReporting.class);
-
-  private MetricsReporting() {
-  }
-
-  public static Consumer<RatisMetricRegistry> consoleReporter(TimeDuration 
rate) {
-    return ratisMetricRegistry -> {
-      ConsoleReporter reporter = 
ConsoleReporter.forRegistry(ratisMetricRegistry.getDropWizardMetricRegistry())
-          
.convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build();
-      reporter.start(rate.getDuration(), rate.getUnit());
-      ratisMetricRegistry.setConsoleReporter(reporter);
-    };
-  }
-
-  public static Consumer<RatisMetricRegistry> stopConsoleReporter() {
-    return ratisMetricRegistry -> {
-      ConsoleReporter reporter = ratisMetricRegistry.getConsoleReporter();
-      if (reporter != null) {
-        reporter.close();
-      }
-    };
-  }
-
-  public static Consumer<RatisMetricRegistry> jmxReporter() {
-    return registry -> {
-      JmxReporter.Builder builder =
-          JmxReporter.forRegistry(registry.getDropWizardMetricRegistry());
-      builder.inDomain(registry.getMetricRegistryInfo().getApplicationName());
-      builder.createsObjectNamesWith(new RatisObjectNameFactory());
-      JmxReporter reporter = builder.build();
-      reporter.start();
-
-      registry.setJmxReporter(reporter);
-    };
-  }
-
-  public static Consumer<RatisMetricRegistry> stopJmxReporter() {
-    return registry -> {
-      JmxReporter reporter = registry.getJmxReporter();
-      if (reporter != null) {
-        reporter.close();
-      }
-    };
-  }
-}
-
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
index 9ebd8f0a5..35df99b23 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
+++ 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisMetricRegistry.java
@@ -17,15 +17,6 @@
  */
 package org.apache.ratis.metrics;
 
-import org.apache.ratis.thirdparty.com.codahale.metrics.ConsoleReporter;
-import org.apache.ratis.thirdparty.com.codahale.metrics.Histogram;
-import org.apache.ratis.thirdparty.com.codahale.metrics.Meter;
-import org.apache.ratis.thirdparty.com.codahale.metrics.Metric;
-import org.apache.ratis.thirdparty.com.codahale.metrics.MetricRegistry;
-import org.apache.ratis.thirdparty.com.codahale.metrics.MetricSet;
-import org.apache.ratis.thirdparty.com.codahale.metrics.jmx.JmxReporter;
-import 
org.apache.ratis.thirdparty.com.google.common.annotations.VisibleForTesting;
-
 import java.util.function.Supplier;
 
 public interface RatisMetricRegistry {
@@ -37,27 +28,5 @@ public interface RatisMetricRegistry {
 
   <T> void gauge(String name, Supplier<Supplier<T>> gaugeSupplier);
 
-  Histogram histogram(String name);
-
-  Meter meter(String name);
-
-  Meter meter(String name, MetricRegistry.MetricSupplier<Meter> supplier);
-
-  @VisibleForTesting Metric get(String shortName);
-
-  <T extends Metric> T register(String name, T metric) throws 
IllegalArgumentException;
-
-  MetricRegistry getDropWizardMetricRegistry();
-
   MetricRegistryInfo getMetricRegistryInfo();
-
-  void registerAll(String prefix, MetricSet metricSet);
-
-  void setJmxReporter(JmxReporter jmxReporter);
-
-  JmxReporter getJmxReporter();
-
-  void setConsoleReporter(ConsoleReporter consoleReporter);
-
-  ConsoleReporter getConsoleReporter();
 }
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/JVMMetrics.java 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
similarity index 73%
rename from ratis-metrics/src/main/java/org/apache/ratis/metrics/JVMMetrics.java
rename to 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
index 402b6df63..cbe325856 100644
--- a/ratis-metrics/src/main/java/org/apache/ratis/metrics/JVMMetrics.java
+++ b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/JvmMetrics.java
@@ -15,8 +15,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.ratis.metrics;
+package org.apache.ratis.metrics.impl;
 
+import org.apache.ratis.metrics.MetricRegistries;
+import org.apache.ratis.metrics.MetricRegistryInfo;
+import org.apache.ratis.metrics.RatisMetricRegistry;
 import 
org.apache.ratis.thirdparty.com.codahale.metrics.jvm.ClassLoadingGaugeSet;
 import 
org.apache.ratis.thirdparty.com.codahale.metrics.jvm.GarbageCollectorMetricSet;
 import 
org.apache.ratis.thirdparty.com.codahale.metrics.jvm.MemoryUsageGaugeSet;
@@ -26,10 +29,10 @@ import org.apache.ratis.util.TimeDuration;
 /**
  * Helper class to add JVM metrics.
  */
-public interface JVMMetrics {
+public interface JvmMetrics {
   static void initJvmMetrics(TimeDuration consoleReportRate) {
     final MetricRegistries registries = MetricRegistries.global();
-    JVMMetrics.addJvmMetrics(registries);
+    JvmMetrics.addJvmMetrics(registries);
     registries.enableConsoleReporter(consoleReportRate);
     registries.enableJmxReporter();
   }
@@ -39,9 +42,10 @@ public interface JVMMetrics {
 
     RatisMetricRegistry registry = registries.create(info);
 
-    registry.registerAll("gc", new GarbageCollectorMetricSet());
-    registry.registerAll("memory", new MemoryUsageGaugeSet());
-    registry.registerAll("threads", new ThreadStatesGaugeSet());
-    registry.registerAll("classLoading", new ClassLoadingGaugeSet());
+    final RatisMetricRegistryImpl impl = 
RatisMetricRegistryImpl.cast(registry);
+    impl.registerAll("gc", new GarbageCollectorMetricSet());
+    impl.registerAll("memory", new MemoryUsageGaugeSet());
+    impl.registerAll("threads", new ThreadStatesGaugeSet());
+    impl.registerAll("classLoading", new ClassLoadingGaugeSet());
   }
 }
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
index cbe8d7bf9..f4ec686fd 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
+++ 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricRegistriesImpl.java
@@ -28,7 +28,6 @@ import java.util.function.Consumer;
 import org.apache.ratis.metrics.MetricRegistries;
 import org.apache.ratis.metrics.MetricRegistryFactory;
 import org.apache.ratis.metrics.MetricRegistryInfo;
-import org.apache.ratis.metrics.MetricsReporting;
 import org.apache.ratis.metrics.RatisMetricRegistry;
 import org.apache.ratis.util.TimeDuration;
 import org.slf4j.Logger;
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
new file mode 100644
index 000000000..1bb50f2af
--- /dev/null
+++ 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/MetricsReporting.java
@@ -0,0 +1,80 @@
+/*
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.ratis.metrics.impl;
+
+import org.apache.ratis.metrics.RatisMetricRegistry;
+import org.apache.ratis.thirdparty.com.codahale.metrics.ConsoleReporter;
+import org.apache.ratis.thirdparty.com.codahale.metrics.ScheduledReporter;
+import org.apache.ratis.thirdparty.com.codahale.metrics.jmx.JmxReporter;
+import org.apache.ratis.util.TimeDuration;
+
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
+
+final class MetricsReporting {
+  private MetricsReporting() {
+  }
+
+  static Consumer<RatisMetricRegistry> consoleReporter(TimeDuration rate) {
+    return registry -> consoleReporter(rate, registry);
+  }
+
+  private static void consoleReporter(TimeDuration rate, RatisMetricRegistry 
registry) {
+    final RatisMetricRegistryImpl impl = 
RatisMetricRegistryImpl.cast(registry);
+    final ConsoleReporter reporter = 
ConsoleReporter.forRegistry(impl.getDropWizardMetricRegistry())
+        .convertRatesTo(TimeUnit.SECONDS)
+        .convertDurationsTo(TimeUnit.MILLISECONDS)
+        .build();
+    reporter.start(rate.getDuration(), rate.getUnit());
+    impl.setConsoleReporter(reporter);
+  }
+
+  static Consumer<RatisMetricRegistry> stopConsoleReporter() {
+    return MetricsReporting::stopConsoleReporter;
+  }
+
+  private static void stopConsoleReporter(RatisMetricRegistry registry) {
+    final RatisMetricRegistryImpl impl = 
RatisMetricRegistryImpl.cast(registry);
+    
Optional.ofNullable(impl.getConsoleReporter()).ifPresent(ScheduledReporter::close);
+  }
+
+  static Consumer<RatisMetricRegistry> jmxReporter() {
+    return MetricsReporting::jmxReporter;
+  }
+
+  private static void jmxReporter(RatisMetricRegistry registry) {
+    final RatisMetricRegistryImpl impl = 
RatisMetricRegistryImpl.cast(registry);
+    final JmxReporter reporter = 
JmxReporter.forRegistry(impl.getDropWizardMetricRegistry())
+        .inDomain(registry.getMetricRegistryInfo().getApplicationName())
+        .createsObjectNamesWith(new RatisObjectNameFactory())
+        .build();
+    reporter.start();
+    impl.setJmxReporter(reporter);
+  }
+
+
+  static Consumer<RatisMetricRegistry> stopJmxReporter() {
+    return MetricsReporting::stopJmxReporter;
+  }
+
+  private static void stopJmxReporter(RatisMetricRegistry registry) {
+    final RatisMetricRegistryImpl impl = 
RatisMetricRegistryImpl.cast(registry);
+    Optional.ofNullable(impl.getJmxReporter()).ifPresent(JmxReporter::close);
+  }
+}
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
index 10c2adb75..0de6bc02d 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
+++ 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisMetricRegistryImpl.java
@@ -24,8 +24,6 @@ import org.apache.ratis.metrics.Timekeeper;
 import org.apache.ratis.thirdparty.com.codahale.metrics.ConsoleReporter;
 import org.apache.ratis.thirdparty.com.codahale.metrics.Counter;
 import org.apache.ratis.thirdparty.com.codahale.metrics.Gauge;
-import org.apache.ratis.thirdparty.com.codahale.metrics.Histogram;
-import org.apache.ratis.thirdparty.com.codahale.metrics.Meter;
 import org.apache.ratis.thirdparty.com.codahale.metrics.Metric;
 import org.apache.ratis.thirdparty.com.codahale.metrics.MetricFilter;
 import org.apache.ratis.thirdparty.com.codahale.metrics.MetricRegistry;
@@ -41,6 +39,13 @@ import java.util.function.Supplier;
  * Custom implementation of {@link MetricRegistry}.
  */
 public class RatisMetricRegistryImpl implements RatisMetricRegistry {
+  static RatisMetricRegistryImpl cast(RatisMetricRegistry registry) {
+    if (!(registry instanceof RatisMetricRegistryImpl)) {
+      throw new IllegalStateException("Unexpected class: " + 
registry.getClass().getName());
+    }
+    return (RatisMetricRegistryImpl) registry;
+  }
+
   private final MetricRegistry metricRegistry = new MetricRegistry();
 
   private final MetricRegistryInfo info;
@@ -100,19 +105,7 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
     return metricRegistry.getGauges(filter);
   }
 
-  @Override public Histogram histogram(String name) {
-    return metricRegistry.histogram(getMetricName(name));
-  }
-
-   @Override public Meter meter(String name) {
-    return metricRegistry.meter(getMetricName(name));
-  }
-
-  @Override public Meter meter(String name, 
MetricRegistry.MetricSupplier<Meter> supplier) {
-    return metricRegistry.meter(getMetricName(name), supplier);
-  }
-
-  @Override @VisibleForTesting
+  @VisibleForTesting
   public Metric get(String shortName) {
     return metricRegistry.getMetrics().get(getMetricName(shortName));
   }
@@ -121,12 +114,12 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
     return MetricRegistry.name(info.getName(), shortName);
   }
 
-  @Override public <T extends Metric> T register(String name, T metric) throws 
IllegalArgumentException {
+  private <T extends Metric> T register(String name, T metric) throws 
IllegalArgumentException {
     return metricRegistry.register(getMetricName(name), metric);
   }
 
 
-  @Override public MetricRegistry getDropWizardMetricRegistry() {
+  public MetricRegistry getDropWizardMetricRegistry() {
     return metricRegistry;
   }
 
@@ -134,7 +127,7 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
     return this.info;
   }
 
-  @Override public void registerAll(String prefix, MetricSet metricSet) {
+  void registerAll(String prefix, MetricSet metricSet) {
     for (Map.Entry<String, Metric> entry : metricSet.getMetrics().entrySet()) {
       if (entry.getValue() instanceof MetricSet) {
         registerAll(prefix + "." + entry.getKey(), (MetricSet) 
entry.getValue());
@@ -144,23 +137,19 @@ public class RatisMetricRegistryImpl implements 
RatisMetricRegistry {
     }
   }
 
-  @Override
-  public void setJmxReporter(JmxReporter jmxReporter) {
+  void setJmxReporter(JmxReporter jmxReporter) {
     this.jmxReporter = jmxReporter;
   }
 
-  @Override
-  public JmxReporter getJmxReporter() {
+  JmxReporter getJmxReporter() {
     return this.jmxReporter;
   }
 
-  @Override
-  public void setConsoleReporter(ConsoleReporter consoleReporter) {
+  void setConsoleReporter(ConsoleReporter consoleReporter) {
     this.consoleReporter = consoleReporter;
   }
 
-  @Override
-  public ConsoleReporter getConsoleReporter() {
+  ConsoleReporter getConsoleReporter() {
     return this.consoleReporter;
   }
 }
diff --git 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisObjectNameFactory.java
 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
similarity index 75%
rename from 
ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisObjectNameFactory.java
rename to 
ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
index dd790f6ac..579f31cb9 100644
--- 
a/ratis-metrics/src/main/java/org/apache/ratis/metrics/RatisObjectNameFactory.java
+++ 
b/ratis-metrics/src/main/java/org/apache/ratis/metrics/impl/RatisObjectNameFactory.java
@@ -16,20 +16,14 @@
  * limitations under the License.
  */
 
-package org.apache.ratis.metrics;
+package org.apache.ratis.metrics.impl;
 
-import org.apache.ratis.thirdparty.com.codahale.metrics.jmx.JmxReporter;
 import org.apache.ratis.thirdparty.com.codahale.metrics.jmx.ObjectNameFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
-public class RatisObjectNameFactory implements ObjectNameFactory {
-
-  private static final Logger LOGGER = 
LoggerFactory.getLogger(JmxReporter.class);
-
+class RatisObjectNameFactory implements ObjectNameFactory {
   @Override
   public ObjectName createName(String type, String domain, String name) {
     try {
@@ -41,9 +35,9 @@ public class RatisObjectNameFactory implements 
ObjectNameFactory {
     } catch (MalformedObjectNameException e) {
       try {
         return new ObjectName(domain, "name", ObjectName.quote(name));
-      } catch (MalformedObjectNameException e1) {
-        LOGGER.warn("Unable to register {} {}", type, name, e1);
-        throw new RuntimeException(e1);
+      } catch (MalformedObjectNameException mone) {
+        throw new IllegalArgumentException(
+            "Failed to register " + name + ", type=" + type + ", domain=" + 
domain, mone);
       }
     }
   }
diff --git 
a/ratis-test/src/test/java/org/apache/ratis/grpc/TestGrpcMessageMetrics.java 
b/ratis-test/src/test/java/org/apache/ratis/grpc/TestGrpcMessageMetrics.java
index 350b24669..2abba7930 100644
--- a/ratis-test/src/test/java/org/apache/ratis/grpc/TestGrpcMessageMetrics.java
+++ b/ratis-test/src/test/java/org/apache/ratis/grpc/TestGrpcMessageMetrics.java
@@ -22,7 +22,7 @@ import org.apache.ratis.server.impl.MiniRaftCluster;
 import org.apache.ratis.RaftTestUtil;
 import org.apache.ratis.client.RaftClient;
 import org.apache.ratis.grpc.server.GrpcService;
-import org.apache.ratis.metrics.JVMMetrics;
+import org.apache.ratis.metrics.impl.JvmMetrics;
 import org.apache.ratis.metrics.RatisMetricRegistry;
 import org.apache.ratis.protocol.RaftClientReply;
 import org.apache.ratis.server.RaftServer;
@@ -40,7 +40,7 @@ import static org.apache.ratis.RaftTestUtil.waitForLeader;
 public class TestGrpcMessageMetrics extends BaseTest
     implements MiniRaftClusterWithGrpc.FactoryGet {
   static {
-    JVMMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
+    JvmMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
   }
 
   public static final int NUM_SERVERS = 3;
diff --git 
a/ratis-test/src/test/java/org/apache/ratis/server/raftlog/TestRaftLogMetrics.java
 
b/ratis-test/src/test/java/org/apache/ratis/server/raftlog/TestRaftLogMetrics.java
index d58004177..a408216a0 100644
--- 
a/ratis-test/src/test/java/org/apache/ratis/server/raftlog/TestRaftLogMetrics.java
+++ 
b/ratis-test/src/test/java/org/apache/ratis/server/raftlog/TestRaftLogMetrics.java
@@ -18,11 +18,13 @@
 package org.apache.ratis.server.raftlog;
 
 import org.apache.ratis.metrics.impl.DefaultTimekeeperImpl;
+import org.apache.ratis.metrics.impl.RatisMetricRegistryImpl;
+import org.apache.ratis.protocol.RaftGroupMemberId;
 import org.apache.ratis.thirdparty.com.codahale.metrics.Timer;
 import org.apache.ratis.BaseTest;
 import org.apache.ratis.RaftTestUtil;
 import org.apache.ratis.client.RaftClient;
-import org.apache.ratis.metrics.JVMMetrics;
+import org.apache.ratis.metrics.impl.JvmMetrics;
 import org.apache.ratis.metrics.RatisMetricRegistry;
 import org.apache.ratis.metrics.RatisMetrics;
 import org.apache.ratis.server.RaftServer;
@@ -50,7 +52,7 @@ import static 
org.apache.ratis.server.metrics.SegmentedRaftLogMetrics.*;
 public class TestRaftLogMetrics extends BaseTest
     implements MiniRaftClusterWithSimulatedRpc.FactoryGet {
   static {
-    JVMMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
+    JvmMetrics.initJvmMetrics(TimeDuration.valueOf(10, TimeUnit.SECONDS));
   }
 
   public static final int NUM_SERVERS = 3;
@@ -117,9 +119,13 @@ public class TestRaftLogMetrics extends BaseTest
     Assert.assertEquals(expectedMsgs, stmCount);
   }
 
+  static RatisMetricRegistryImpl getRegistry(RaftGroupMemberId memberId) {
+    return (RatisMetricRegistryImpl) 
RaftLogMetricsBase.getLogWorkerMetricRegistry(memberId);
+  }
+
   static void assertFlushCount(RaftServer.Division server) throws Exception {
     final String flushTimeMetric = 
RaftStorageTestUtils.getLogFlushTimeMetric(server.getMemberId().toString());
-    final RatisMetricRegistry ratisMetricRegistry = 
RaftLogMetricsBase.getLogWorkerMetricRegistry(server.getMemberId());
+    final RatisMetricRegistryImpl ratisMetricRegistry = 
getRegistry(server.getMemberId());
     Timer tm = (Timer) ratisMetricRegistry.get(RAFT_LOG_FLUSH_TIME);
     Assert.assertNotNull(tm);
 
@@ -142,7 +148,7 @@ public class TestRaftLogMetrics extends BaseTest
 
   static void assertRaftLogWritePathMetrics(RaftServer.Division server) throws 
Exception {
     final String syncTimeMetric = 
RaftStorageTestUtils.getRaftLogFullMetric(server.getMemberId().toString(), 
RAFT_LOG_SYNC_TIME);
-    final RatisMetricRegistry ratisMetricRegistry = 
RaftLogMetricsBase.getLogWorkerMetricRegistry(server.getMemberId());
+    final RatisMetricRegistryImpl ratisMetricRegistry = 
getRegistry(server.getMemberId());
 
     //Test sync count
     Timer tm = (Timer) ratisMetricRegistry.get(RAFT_LOG_SYNC_TIME);

Reply via email to