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);