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 <[email protected]> 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(); + } }
