Skip to content

Commit

Permalink
Fix: Updated dropwizard3 to a version with the separated jmx module. (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisdutz authored Sep 23, 2023
1 parent 86d3938 commit 0f5f95d
Show file tree
Hide file tree
Showing 25 changed files with 96 additions and 59 deletions.
10 changes: 5 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
<name>Apache Ratis</name>
<packaging>pom</packaging>
<description>
Expand Down Expand Up @@ -182,7 +182,7 @@
<build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
<exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
<extra-enforcer-rules.version>1.6.1</extra-enforcer-rules.version>
<license-maven-plugin.version>4.1</license-maven-plugin.version>
<license-maven-plugin.version>2.2.0</license-maven-plugin.version>

<protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
<copy-rename-maven-plugin.version>1.0</copy-rename-maven-plugin.version>
Expand Down Expand Up @@ -219,7 +219,7 @@
<testsThreadCount>4</testsThreadCount>

<!--metrics-->
<dropwizard.version>3.2.5</dropwizard.version>
<dropwizard.version>4.2.9</dropwizard.version>

<slf4j.version>2.0.7</slf4j.version>
</properties>
Expand Down Expand Up @@ -414,13 +414,13 @@

<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jvm</artifactId>
<artifactId>metrics-jmx</artifactId>
<version>${dropwizard.version}</version>
</dependency>

<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-ganglia</artifactId>
<artifactId>metrics-jvm</artifactId>
<version>${dropwizard.version}</version>
</dependency>

Expand Down
2 changes: 1 addition & 1 deletion ratis-assembly/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-assembly</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-client</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-common</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
Expand Down Expand Up @@ -113,7 +114,9 @@ public static String bytes2HexString(ByteBuffer bytes) {
for(; bytes.remaining() > 0; ) {
s.append(format("%02x", bytes.get()));
}
bytes.flip();
// This cast avoids compatability issues with Java 8
// In Java 8 ByteBuffer doesn't have a "flip()" method.
((Buffer) bytes).flip();
return s.toString();
}

Expand Down
2 changes: 1 addition & 1 deletion ratis-docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-docs</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-examples</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-experiments/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-experiments</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-grpc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-grpc</artifactId>
Expand Down
13 changes: 3 additions & 10 deletions ratis-metrics/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-metrics</artifactId>
Expand Down Expand Up @@ -62,18 +62,11 @@
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jvm</artifactId>
<optional>true</optional>
<artifactId>metrics-jmx</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-ganglia</artifactId>
<exclusions>
<exclusion>
<groupId>org.acplt</groupId>
<artifactId>oncrpc</artifactId>
</exclusion>
</exclusions>
<artifactId>metrics-jvm</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import java.util.function.Consumer;

import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.JmxReporter.Builder;
import com.codahale.metrics.jmx.JmxReporter;
import com.codahale.metrics.jmx.JmxReporter.Builder;
import org.apache.ratis.util.TimeDuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -53,9 +53,9 @@ public static Consumer<RatisMetricRegistry> stopConsoleReporter() {

public static Consumer<RatisMetricRegistry> jmxReporter() {
return registry -> {
Builder builder =
JmxReporter.forRegistry(registry.getDropWizardMetricRegistry());
Builder builder = JmxReporter.forRegistry(registry.getDropWizardMetricRegistry());
builder.inDomain(registry.getMetricRegistryInfo().getApplicationName());
builder.createsObjectNamesWith(new RatisObjectNameFactory());
JmxReporter reporter = builder.build();
reporter.start();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
import com.codahale.metrics.Counter;
import com.codahale.metrics.Gauge;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.Meter;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.MetricSet;
import com.codahale.metrics.Timer;
import com.codahale.metrics.jmx.JmxReporter;
import org.apache.ratis.thirdparty.com.google.common.annotations.VisibleForTesting;

public interface RatisMetricRegistry {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* 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 com.codahale.metrics.jmx.JmxReporter;
import 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);

@Override
public ObjectName createName(String type, String domain, String name) {
try {
ObjectName objectName = new ObjectName(domain, "name", name);
if (objectName.isPattern()) {
objectName = new ObjectName(domain, "name", ObjectName.quote(name));
}
return objectName;
} 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);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@
import com.codahale.metrics.Counter;
import com.codahale.metrics.Gauge;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.JmxReporter;
import com.codahale.metrics.Meter;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.MetricRegistry.MetricSupplier;
import com.codahale.metrics.MetricSet;
import com.codahale.metrics.Timer;
import com.codahale.metrics.jmx.JmxReporter;
import org.apache.ratis.metrics.MetricRegistryInfo;
import org.apache.ratis.metrics.RatisMetricRegistry;
import org.apache.ratis.thirdparty.com.google.common.annotations.VisibleForTesting;
Expand Down
2 changes: 1 addition & 1 deletion ratis-netty/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-netty</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-proto/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-proto</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-replicated-map/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-replicated-map</artifactId>
Expand Down
3 changes: 1 addition & 2 deletions ratis-resource-bundle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<relativePath>..</relativePath>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-resource-bundle</artifactId>
Expand Down
14 changes: 0 additions & 14 deletions ratis-resource-bundle/src/main/resources/supplemental-models.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,6 @@ under the License.
</licenses>
</project>
</supplement>
<supplement>
<project>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-ganglia</artifactId>

<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
</project>
</supplement>
<supplement>
<project>
<groupId>io.dropwizard.metrics</groupId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-server-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-server-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion ratis-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-server</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,21 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import com.codahale.metrics.Gauge;
import org.apache.ratis.BaseTest;
import org.apache.ratis.metrics.RatisMetricRegistry;
import org.apache.ratis.protocol.RaftGroupId;
import org.apache.ratis.protocol.RaftGroupMemberId;
import org.apache.ratis.protocol.RaftPeerId;
import org.junit.BeforeClass;
import org.junit.Test;

import java.util.SortedMap;

/**
* Test for LeaderElectionMetrics.
*/
public class TestLeaderElectionMetrics {
public class TestLeaderElectionMetrics extends BaseTest {

private static LeaderElectionMetrics leaderElectionMetrics;
private static RatisMetricRegistry ratisMetricRegistry;
Expand All @@ -48,15 +52,17 @@ public static void setUp() {
}

@Test
public void testOnLeaderElectionCompletion() throws Exception {
public void testOnLeaderElectionCompletion() {
leaderElectionMetrics.onNewLeaderElectionCompletion();
Long leaderElectionLatency = (Long) ratisMetricRegistry.getGauges((s, metric) ->
s.contains(LAST_LEADER_ELECTION_ELAPSED_TIME)).values().iterator().next().getValue();
assertTrue(leaderElectionLatency >= 0L);
final SortedMap<String, Gauge> gauges = ratisMetricRegistry.getGauges(
(s, metric) -> s.contains(LAST_LEADER_ELECTION_ELAPSED_TIME));
LOG.info("{} gauges: {}", LAST_LEADER_ELECTION_ELAPSED_TIME, gauges);
final Long leaderElectionLatency = (Long)gauges.values().iterator().next().getValue();
assertTrue("leaderElectionLatency = " + leaderElectionLatency, leaderElectionLatency > 0L);
}

@Test
public void testOnLeaderElectionTimeout() throws Exception {
public void testOnLeaderElectionTimeout() {
long numLeaderElectionTimeouts = ratisMetricRegistry.counter(
LEADER_ELECTION_TIMEOUT_COUNT_METRIC).getCount();
assertTrue(numLeaderElectionTimeouts == 0);
Expand Down
2 changes: 1 addition & 1 deletion ratis-shell/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<parent>
<artifactId>ratis</artifactId>
<groupId>org.apache.ratis</groupId>
<version>2.5.2-a4398bf-SNAPSHOT</version>
<version>2.5.2-c97b814-SNAPSHOT</version>
</parent>

<artifactId>ratis-shell</artifactId>
Expand Down
Loading

0 comments on commit 0f5f95d

Please sign in to comment.