You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sh...@apache.org on 2020/06/03 07:00:39 UTC

[incubator-ratis] branch master updated: RATIS-939. Fix Failed UT: testRaftServerMetrics (#102)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6ab75ae  RATIS-939. Fix Failed UT: testRaftServerMetrics (#102)
6ab75ae is described below

commit 6ab75ae9da4b380056279b02f208dc9b1329325b
Author: runzhiwang <51...@users.noreply.github.com>
AuthorDate: Wed Jun 3 15:00:31 2020 +0800

    RATIS-939. Fix Failed UT: testRaftServerMetrics (#102)
---
 .../java/org/apache/ratis/metrics/RatisMetricRegistry.java  |  2 ++
 .../apache/ratis/metrics/impl/RatisMetricRegistryImpl.java  |  5 +++++
 .../main/java/org/apache/ratis/server/impl/LeaderState.java |  3 +++
 .../java/org/apache/ratis/server/impl/PendingRequests.java  | 13 +++++++++++++
 .../org/apache/ratis/server/impl/RaftServerMetrics.java     |  8 ++++++++
 5 files changed, 31 insertions(+)

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 af6a50c..03f419c 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
@@ -37,6 +37,8 @@ public interface RatisMetricRegistry {
 
   Counter counter(String name);
 
+  boolean remove(String name);
+
   Gauge gauge(String name, MetricRegistry.MetricSupplier<Gauge> supplier);
 
   Timer timer(String name, MetricRegistry.MetricSupplier<Timer> supplier);
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 da48fe9..3f213ba 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
@@ -62,6 +62,11 @@ public class RatisMetricRegistryImpl implements RatisMetricRegistry {
     return metricRegistry.counter(getMetricName(name));
   }
 
+  @Override
+  public boolean remove(String name) {
+    return metricRegistry.remove(getMetricName(name));
+  }
+
   @Override public Gauge gauge(String name, MetricSupplier<Gauge> supplier) {
     return metricRegistry.gauge(getMetricName(name), supplier);
   }
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
index 745a11a..a27c77e 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderState.java
@@ -277,6 +277,9 @@ public class LeaderState {
     server.getServerRpc().notifyNotLeader(server.getMemberId().getGroupId());
     logAppenderMetrics.unregister();
     raftServerMetrics.unregister();
+    if (pendingRequests != null) {
+      pendingRequests.close();
+    }
   }
 
   void notifySenders() {
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/PendingRequests.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/PendingRequests.java
index 4cd0a0e..0ea59a7 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/PendingRequests.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/PendingRequests.java
@@ -165,6 +165,13 @@ class PendingRequests {
         }
       }
     }
+
+    void close() {
+      if (raftServerMetrics != null) {
+        raftServerMetrics.removeNumPendingRequestsGauge();
+        raftServerMetrics.removeNumPendingRequestsByteSize();
+      }
+    }
   }
 
   private PendingRequest pendingSetConf;
@@ -247,4 +254,10 @@ class PendingRequests {
     }
     return transactions;
   }
+
+  void close() {
+    if (pendingRequests != null) {
+      pendingRequests.close();
+    }
+  }
 }
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
index a0ab45c..ec3ad68 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
@@ -210,10 +210,18 @@ public final class RaftServerMetrics extends RatisMetrics {
     registry.gauge(REQUEST_QUEUE_SIZE, () -> queueSize);
   }
 
+  boolean removeNumPendingRequestsGauge() {
+    return registry.remove(REQUEST_QUEUE_SIZE);
+  }
+
   void addNumPendingRequestsByteSize(Gauge byteSize) {
     registry.gauge(REQUEST_BYTE_SIZE, () -> byteSize);
   }
 
+  boolean removeNumPendingRequestsByteSize() {
+    return registry.remove(REQUEST_BYTE_SIZE);
+  }
+
   void onRequestByteSizeLimitHit() {
     registry.counter(REQUEST_BYTE_SIZE_LIMIT_HIT_COUNTER).inc();
   }