2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard;
11 import org.opendaylight.controller.cluster.datastore.jmx.mbeans.AbstractBaseMBean;
13 import java.text.SimpleDateFormat;
14 import java.util.Date;
17 * @author Basheeruddin syedbahm@cisco.com
19 public class ShardStats extends AbstractBaseMBean implements ShardStatsMBean {
21 private final String shardName;
23 private long committedTransactionsCount = 0L;
25 private long readOnlyTransactionCount = 0L;
27 private long writeOnlyTransactionCount = 0L;
29 private long readWriteTransactionCount = 0L;
31 private String leader;
33 private String raftState;
35 private long lastLogTerm = -1L;
37 private long lastLogIndex = -1L;
39 private long currentTerm = -1L;
41 private long commitIndex = -1L;
43 private long lastApplied = -1L;
45 private Date lastCommittedTransactionTime = new Date(0L);
47 private long failedTransactionsCount = 0L;
49 private long failedReadTransactionsCount = 0L;
51 private long abortTransactionsCount = 0L;
53 private SimpleDateFormat sdf =
54 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
56 ShardStats(String shardName) {
57 this.shardName = shardName;
62 public String getShardName() {
67 public long getCommittedTransactionsCount() {
68 return committedTransactionsCount;
71 @Override public String getLeader() {
75 @Override public String getRaftState() {
79 @Override public long getReadOnlyTransactionCount() {
80 return readOnlyTransactionCount;
83 @Override public long getWriteOnlyTransactionCount() {
84 return writeOnlyTransactionCount;
87 @Override public long getReadWriteTransactionCount() {
88 return readWriteTransactionCount;
91 @Override public long getLastLogIndex() {
95 @Override public long getLastLogTerm() {
99 @Override public long getCurrentTerm() {
103 @Override public long getCommitIndex() {
107 @Override public long getLastApplied() {
112 public String getLastCommittedTransactionTime() {
114 return sdf.format(lastCommittedTransactionTime);
117 @Override public long getFailedTransactionsCount() {
118 return failedTransactionsCount;
121 @Override public long getFailedReadTransactionsCount() {
122 return failedReadTransactionsCount;
125 @Override public long getAbortTransactionsCount() {
126 return abortTransactionsCount;
129 public long incrementCommittedTransactionCount() {
130 return committedTransactionsCount++;
133 public long incrementReadOnlyTransactionCount() {
134 return readOnlyTransactionCount++;
137 public long incrementWriteOnlyTransactionCount() {
138 return writeOnlyTransactionCount++;
141 public long incrementReadWriteTransactionCount() {
142 return readWriteTransactionCount++;
145 public long incrementFailedTransactionsCount() {
146 return failedTransactionsCount++;
149 public long incrementFailedReadTransactionsCount() {
150 return failedReadTransactionsCount++;
153 public long incrementAbortTransactionsCount () { return abortTransactionsCount++;}
155 public void setLeader(String leader) {
156 this.leader = leader;
159 public void setRaftState(String raftState) {
160 this.raftState = raftState;
163 public void setLastLogTerm(long lastLogTerm) {
164 this.lastLogTerm = lastLogTerm;
167 public void setLastLogIndex(long lastLogIndex) {
168 this.lastLogIndex = lastLogIndex;
171 public void setCurrentTerm(long currentTerm) {
172 this.currentTerm = currentTerm;
175 public void setCommitIndex(long commitIndex) {
176 this.commitIndex = commitIndex;
179 public void setLastApplied(long lastApplied) {
180 this.lastApplied = lastApplied;
184 public void setLastCommittedTransactionTime(
185 Date lastCommittedTransactionTime) {
186 this.lastCommittedTransactionTime = lastCommittedTransactionTime;
190 protected String getMBeanName() {
195 protected String getMBeanType() {
196 return JMX_TYPE_DISTRIBUTED_DATASTORE;
200 protected String getMBeanCategory() {
201 return JMX_CATEGORY_SHARD;
205 * resets the counters related to transactions
208 public void resetTransactionCounters(){
209 committedTransactionsCount = 0L;
211 readOnlyTransactionCount = 0L;
213 writeOnlyTransactionCount = 0L;
215 readWriteTransactionCount = 0L;
217 lastCommittedTransactionTime = new Date(0L);
219 failedTransactionsCount = 0L;
221 failedReadTransactionsCount = 0L;
223 abortTransactionsCount = 0L;