From b6c6c11f0456d68dd45dcdadf071db061e84fd54 Mon Sep 17 00:00:00 2001 From: Deepthi Devaki Akkoorath Date: Wed, 29 Nov 2023 13:45:49 +0100 Subject: [PATCH] fix(raft): update role metrics when closing or transitioning to inactive (cherry picked from commit 35ea7ba3fefc06ddb12bf24b31062eeccd18b0f2) --- .../src/main/java/io/atomix/raft/impl/RaftContext.java | 2 ++ .../src/main/java/io/atomix/raft/metrics/RaftRoleMetrics.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/atomix/cluster/src/main/java/io/atomix/raft/impl/RaftContext.java b/atomix/cluster/src/main/java/io/atomix/raft/impl/RaftContext.java index 7cf451834f23..017d948f9ce4 100644 --- a/atomix/cluster/src/main/java/io/atomix/raft/impl/RaftContext.java +++ b/atomix/cluster/src/main/java/io/atomix/raft/impl/RaftContext.java @@ -853,6 +853,7 @@ public void checkThread() { private RaftRole createRole(final Role role) { switch (role) { case INACTIVE: + raftRoleMetrics.becomingInactive(); return new InactiveRole(this); case PASSIVE: return new PassiveRole(this); @@ -915,6 +916,7 @@ public void transition(final Type type) { @Override public void close() { + raftRoleMetrics.becomingInactive(); started = false; // Unregister protocol listeners. unregisterHandlers(protocol); diff --git a/atomix/cluster/src/main/java/io/atomix/raft/metrics/RaftRoleMetrics.java b/atomix/cluster/src/main/java/io/atomix/raft/metrics/RaftRoleMetrics.java index ad2a8d4a0c97..24a6c011e35c 100644 --- a/atomix/cluster/src/main/java/io/atomix/raft/metrics/RaftRoleMetrics.java +++ b/atomix/cluster/src/main/java/io/atomix/raft/metrics/RaftRoleMetrics.java @@ -67,6 +67,10 @@ public RaftRoleMetrics(final String partitionName) { electionLatency = ELECTION_LATENCY.labels(partitionGroupName, partition); } + public void becomingInactive() { + role.set(0); + } + public void becomingFollower() { role.set(1); }