Merge "Hotfix for resolving of remote yang schemas."
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / jmx / mbeans / shard / ShardStats.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard;
10
11 import org.opendaylight.controller.cluster.datastore.jmx.mbeans.AbstractBaseMBean;
12
13 import java.text.SimpleDateFormat;
14 import java.util.Date;
15
16 /**
17  * @author  Basheeruddin syedbahm@cisco.com
18  */
19 public class ShardStats extends AbstractBaseMBean implements ShardStatsMBean {
20
21     private final String shardName;
22
23     private long committedTransactionsCount = 0L;
24
25     private long readOnlyTransactionCount = 0L;
26
27     private long writeOnlyTransactionCount = 0L;
28
29     private long readWriteTransactionCount = 0L;
30
31     private String leader;
32
33     private String raftState;
34
35     private long lastLogTerm = -1L;
36
37     private long lastLogIndex = -1L;
38
39     private long currentTerm = -1L;
40
41     private long commitIndex = -1L;
42
43     private long lastApplied = -1L;
44
45     private Date lastCommittedTransactionTime = new Date(0L);
46
47     private long failedTransactionsCount = 0L;
48
49     private long failedReadTransactionsCount = 0L;
50
51     private long abortTransactionsCount = 0L;
52
53     private SimpleDateFormat sdf =
54         new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
55
56     ShardStats(String shardName) {
57         this.shardName = shardName;
58     }
59
60
61     @Override
62     public String getShardName() {
63         return shardName;
64     }
65
66     @Override
67     public long getCommittedTransactionsCount() {
68         return committedTransactionsCount;
69     }
70
71     @Override public String getLeader() {
72         return leader;
73     }
74
75     @Override public String getRaftState() {
76         return raftState;
77     }
78
79     @Override public long getReadOnlyTransactionCount() {
80         return readOnlyTransactionCount;
81     }
82
83     @Override public long getWriteOnlyTransactionCount() {
84         return writeOnlyTransactionCount;
85     }
86
87     @Override public long getReadWriteTransactionCount() {
88         return readWriteTransactionCount;
89     }
90
91     @Override public long getLastLogIndex() {
92         return lastLogIndex;
93     }
94
95     @Override public long getLastLogTerm() {
96         return lastLogTerm;
97     }
98
99     @Override public long getCurrentTerm() {
100         return currentTerm;
101     }
102
103     @Override public long getCommitIndex() {
104         return commitIndex;
105     }
106
107     @Override public long getLastApplied() {
108         return lastApplied;
109     }
110
111     @Override
112     public String getLastCommittedTransactionTime() {
113
114         return sdf.format(lastCommittedTransactionTime);
115     }
116
117     @Override public long getFailedTransactionsCount() {
118         return failedTransactionsCount;
119     }
120
121     @Override public long getFailedReadTransactionsCount() {
122         return failedReadTransactionsCount;
123     }
124
125     @Override public long getAbortTransactionsCount() {
126         return abortTransactionsCount;
127     }
128
129     public long incrementCommittedTransactionCount() {
130         return committedTransactionsCount++;
131     }
132
133     public long incrementReadOnlyTransactionCount() {
134         return readOnlyTransactionCount++;
135     }
136
137     public long incrementWriteOnlyTransactionCount() {
138         return writeOnlyTransactionCount++;
139     }
140
141     public long incrementReadWriteTransactionCount() {
142         return readWriteTransactionCount++;
143     }
144
145     public long incrementFailedTransactionsCount() {
146         return failedTransactionsCount++;
147     }
148
149     public long incrementFailedReadTransactionsCount() {
150         return failedReadTransactionsCount++;
151     }
152
153     public long incrementAbortTransactionsCount () { return abortTransactionsCount++;}
154
155     public void setLeader(String leader) {
156         this.leader = leader;
157     }
158
159     public void setRaftState(String raftState) {
160         this.raftState = raftState;
161     }
162
163     public void setLastLogTerm(long lastLogTerm) {
164         this.lastLogTerm = lastLogTerm;
165     }
166
167     public void setLastLogIndex(long lastLogIndex) {
168         this.lastLogIndex = lastLogIndex;
169     }
170
171     public void setCurrentTerm(long currentTerm) {
172         this.currentTerm = currentTerm;
173     }
174
175     public void setCommitIndex(long commitIndex) {
176         this.commitIndex = commitIndex;
177     }
178
179     public void setLastApplied(long lastApplied) {
180         this.lastApplied = lastApplied;
181     }
182
183
184     public void setLastCommittedTransactionTime(
185         Date lastCommittedTransactionTime) {
186         this.lastCommittedTransactionTime = lastCommittedTransactionTime;
187     }
188
189     @Override
190     protected String getMBeanName() {
191         return shardName;
192     }
193
194     @Override
195     protected String getMBeanType() {
196         return JMX_TYPE_DISTRIBUTED_DATASTORE;
197     }
198
199     @Override
200     protected String getMBeanCategory() {
201         return JMX_CATEGORY_SHARD;
202     }
203
204     /**
205      * resets the counters related to transactions
206      */
207
208     public void resetTransactionCounters(){
209         committedTransactionsCount = 0L;
210
211         readOnlyTransactionCount = 0L;
212
213         writeOnlyTransactionCount = 0L;
214
215         readWriteTransactionCount = 0L;
216
217         lastCommittedTransactionTime = new Date(0L);
218
219         failedTransactionsCount = 0L;
220
221         failedReadTransactionsCount = 0L;
222
223         abortTransactionsCount = 0L;
224
225     }
226
227
228 }