Expose more information about a Shard 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
10     private final String shardName;
11
12     private Long committedTransactionsCount = 0L;
13
14     private Long readOnlyTransactionCount = 0L;
15
16     private Long writeOnlyTransactionCount = 0L;
17
18     private Long readWriteTransactionCount = 0L;
19
20     private String leader;
21
22     private String raftState;
23
24     private Long lastLogTerm = -1L;
25
26     private Long lastLogIndex = -1L;
27
28     private Long currentTerm = -1L;
29
30     private Long commitIndex = -1L;
31
32     private Long lastApplied = -1L;
33
34     ShardStats(String shardName) {
35         this.shardName = shardName;
36     }
37
38
39     @Override
40     public String getShardName() {
41         return shardName;
42     }
43
44     @Override
45     public Long getCommittedTransactionsCount() {
46         return committedTransactionsCount;
47     }
48
49     @Override public String getLeader() {
50         return leader;
51     }
52
53     @Override public String getRaftState() {
54         return raftState;
55     }
56
57     @Override public Long getReadOnlyTransactionCount() {
58         return readOnlyTransactionCount;
59     }
60
61     @Override public Long getWriteOnlyTransactionCount() {
62         return writeOnlyTransactionCount;
63     }
64
65     @Override public Long getReadWriteTransactionCount() {
66         return readWriteTransactionCount;
67     }
68
69     @Override public Long getLastLogIndex() {
70         return lastLogIndex;
71     }
72
73     @Override public Long getLastLogTerm() {
74         return lastLogTerm;
75     }
76
77     @Override public Long getCurrentTerm() {
78         return currentTerm;
79     }
80
81     @Override public Long getCommitIndex() {
82         return commitIndex;
83     }
84
85     @Override public Long getLastApplied() {
86         return lastApplied;
87     }
88
89     public Long incrementCommittedTransactionCount() {
90         return committedTransactionsCount++;
91     }
92
93     public Long incrementReadOnlyTransactionCount() {
94         return readOnlyTransactionCount++;
95     }
96
97     public Long incrementWriteOnlyTransactionCount() {
98         return writeOnlyTransactionCount++;
99     }
100
101     public Long incrementReadWriteTransactionCount() {
102         return readWriteTransactionCount++;
103     }
104
105     public void setLeader(String leader) {
106         this.leader = leader;
107     }
108
109     public void setRaftState(String raftState) {
110         this.raftState = raftState;
111     }
112
113     public void setLastLogTerm(Long lastLogTerm) {
114         this.lastLogTerm = lastLogTerm;
115     }
116
117     public void setLastLogIndex(Long lastLogIndex) {
118         this.lastLogIndex = lastLogIndex;
119     }
120
121     public void setCurrentTerm(Long currentTerm) {
122         this.currentTerm = currentTerm;
123     }
124
125     public void setCommitIndex(Long commitIndex) {
126         this.commitIndex = commitIndex;
127     }
128
129     public void setLastApplied(Long lastApplied) {
130         this.lastApplied = lastApplied;
131     }
132
133     @Override
134     protected String getMBeanName() {
135         return shardName;
136     }
137
138     @Override
139     protected String getMBeanType() {
140         return JMX_TYPE_DISTRIBUTED_DATASTORE;
141     }
142
143     @Override
144     protected String getMBeanCategory() {
145         return JMX_CATEGORY_SHARD;
146     }
147
148
149 }