Merge "Add LeadershipChangeCount to ShardStats"
authorMoiz Raja <moraja@cisco.com>
Sat, 11 Apr 2015 01:13:56 +0000 (01:13 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Sat, 11 Apr 2015 01:13:56 +0000 (01:13 +0000)
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStats.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/jmx/mbeans/shard/ShardStatsMXBean.java

index 81449c574780705196e28d3dbd738151c2d948cd..7110adc625ac52aa6b54717052a8f511beef89a7 100644 (file)
@@ -701,6 +701,11 @@ public class Shard extends RaftActor {
         }
     }
 
+    @Override
+    protected void onLeaderChanged(String oldLeader, String newLeader) {
+        shardMBean.incrementLeadershipChangeCount();
+    }
+
     @Override
     public String persistenceId() {
         return this.name;
index fb59b7643f09f77ca19013a4cda3051bf4320bd8..e3c8ced878232f2a831d541f6bbb3b14b233327d 100644 (file)
@@ -77,6 +77,10 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
 
     private String statRetrievalTime;
 
+    private long leadershipChangeCount;
+
+    private long lastLeadershipChangeTime;
+
     public ShardStats(final String shardName, final String mxBeanType) {
         super(shardName, mxBeanType, JMX_CATEGORY_SHARD);
     }
@@ -366,4 +370,19 @@ public class ShardStats extends AbstractMXBean implements ShardStatsMXBean {
         getOnDemandRaftState();
         return statRetrievalError;
     }
+
+    @Override
+    public long getLeadershipChangeCount() {
+        return leadershipChangeCount;
+    }
+
+    public void incrementLeadershipChangeCount() {
+        leadershipChangeCount++;
+        lastLeadershipChangeTime = System.currentTimeMillis();
+    }
+
+    @Override
+    public String getLastLeadershipChangeTime() {
+        return DATE_FORMAT.format(new Date(lastLeadershipChangeTime));
+    }
 }