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 d98c7be  Ratis-1435. Update metric of leaderElectionTimeout (#536)
d98c7be is described below

commit d98c7be27c0648d261955b83d2b375e6fd2ab9d1
Author: Yaolong Liu <[email protected]>
AuthorDate: Wed Nov 17 15:23:36 2021 +0800

    Ratis-1435. Update metric of leaderElectionTimeout (#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();
+  }
 }

Reply via email to