You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sz...@apache.org on 2021/11/17 07:29:53 UTC

[ratis] 02/02: RATIS-1435. Update metric for transferLeadership. (#536)

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

commit 77e5e7406436586c85ded0b5038a06d0b43864d7
Author: Yaolong Liu <ly...@163.com>
AuthorDate: Wed Nov 17 15:23:36 2021 +0800

    RATIS-1435. Update metric for transferLeadership. (#536)
---
 .../main/java/org/apache/ratis/server/impl/LeaderStateImpl.java   | 2 +-
 .../org/apache/ratis/server/metrics/LeaderElectionMetrics.java    | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
index ee3c012..0385011 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
@@ -559,6 +559,7 @@ class LeaderStateImpl implements LeaderState {
     final StartLeaderElectionRequestProto r = ServerProtoUtils.toStartLeaderElectionRequestProto(
         server.getMemberId(), follower, lastEntry);
     CompletableFuture.supplyAsync(() -> {
+      server.getLeaderElectionMetrics().onTransferLeadership();
       try {
         StartLeaderElectionReplyProto replyProto = server.getServerRpc().startLeaderElection(r);
         LOG.info("{} received {} reply of StartLeaderElectionRequest from follower:{}",
@@ -937,7 +938,6 @@ class LeaderStateImpl implements LeaderState {
                 "is higher than leader's:{} and follower's lastEntry index:{} catch up with leader's:{}",
             this, followerID, currentTerm, followerPriority, leaderPriority, followerInfo.getMatchIndex(),
             leaderLastEntry.getIndex());
-
         sendStartLeaderElectionToHigherPriorityPeer(followerID, leaderLastEntry);
         return;
       }
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/metrics/LeaderElectionMetrics.java b/ratis-server/src/main/java/org/apache/ratis/server/metrics/LeaderElectionMetrics.java
index 665f59b..ef4ca8d 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/metrics/LeaderElectionMetrics.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/metrics/LeaderElectionMetrics.java
@@ -41,9 +41,9 @@ public final class LeaderElectionMetrics extends RatisMetrics {
   public static final String LEADER_ELECTION_TIMEOUT_COUNT_METRIC = "timeoutCount";
   public static final String LEADER_ELECTION_TIME_TAKEN = "electionTime";
   public static final String LAST_LEADER_ELAPSED_TIME = "lastLeaderElapsedTime";
+  public static final String TRANSFER_LEADERSHIP_COUNT_METRIC = "transferLeadershipCount";
 
-  public static final String LAST_LEADER_ELECTION_ELAPSED_TIME =
-      "lastLeaderElectionElapsedTime";
+  public static final String LAST_LEADER_ELECTION_ELAPSED_TIME = "lastLeaderElectionElapsedTime";
   private volatile Timestamp lastElectionTime;
 
   private LeaderElectionMetrics(RaftGroupMemberId serverId, LongSupplier getLastLeaderElapsedTimeMs) {
@@ -76,4 +76,8 @@ public final class LeaderElectionMetrics extends RatisMetrics {
   public void onLeaderElectionTimeout() {
     registry.counter(LEADER_ELECTION_TIMEOUT_COUNT_METRIC).inc();
   }
+
+  public void onTransferLeadership() {
+    registry.counter(TRANSFER_LEADERSHIP_COUNT_METRIC).inc();
+  }
 }