Expose the Raft State of a Shard and the name of it's Leader via JMX
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / jmx / mbeans / shard / ShardStats.java
1 package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard;
2
3 import org.opendaylight.controller.cluster.datastore.jmx.mbeans.AbstractBaseMBean;
4
5 /**
6  * @author: syedbahm
7  */
8 public class ShardStats extends AbstractBaseMBean implements ShardStatsMBean {
9   private  Long committedTransactionsCount;
10   private Long journalMessagesCount;
11   final private String shardName;
12   private String leader;
13   private String raftState;
14
15   ShardStats(String shardName){
16     this.shardName = shardName;
17     committedTransactionsCount =0L;
18     journalMessagesCount = 0L;
19   };
20
21
22   @Override
23   public String getShardName() {
24     return shardName;
25   }
26
27   @Override
28   public Long getCommittedTransactionsCount() {
29     return committedTransactionsCount;
30   }
31
32   @Override
33   public Long getJournalMessagesCount() {
34     //FIXME: this will be populated once after integration with Raft stuff
35     return journalMessagesCount;
36   }
37
38   @Override public String getLeader() {
39     return leader;
40   }
41
42   @Override public String getRaftState() {
43     return raftState;
44   }
45
46   public Long incrementCommittedTransactionCount() {
47     return committedTransactionsCount++;
48   }
49
50
51   public void updateCommittedTransactionsCount(long currentCount){
52      committedTransactionsCount = currentCount;
53
54   }
55
56   public void updateJournalMessagesCount(long currentCount){
57     journalMessagesCount  = currentCount;
58
59   }
60
61   public void setLeader(String leader){
62     this.leader = leader;
63   }
64
65   public void setRaftState(String raftState){
66     this.raftState = raftState;
67   }
68
69
70   @Override
71   protected String getMBeanName() {
72     return  shardName;
73   }
74
75   @Override
76   protected String getMBeanType() {
77     return JMX_TYPE_DISTRIBUTED_DATASTORE;
78   }
79
80   @Override
81   protected String getMBeanCategory() {
82     return JMX_CATEGORY_SHARD;
83   }
84
85
86 }