blob: 500e084892e164303e06541add30747c1758eb28 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.apache.geode.management;
import java.util.HashMap;
import java.util.Map;
/**
* Composite data type used to distribute statistics which can be used to determine the health of a
* cache client.
*
* @since GemFire 7.0
*/
public class ClientHealthStatus {
/**
* Id of the client
*/
private String clientId;
/**
* Name of the client
*/
private String name;
/**
* Host Name of the client
*/
private String hostName;
/**
* "numOfGets", IntCounter, "The total number of times a successful get has been done on this
* cache." Java: CachePerfStats.gets Native: Not yet Defined
*/
private int numOfGets;
/**
* "numOfPuts", IntCounter, "The total number of times an entry is added or replaced in this cache
* as a result of a local operation (put(), create(), or get() which results in load, netsearch,
* or netloading a value). Note that this only counts puts done explicitly on this cache. It does
* not count updates pushed from other caches." Java: CachePerfStats.puts Native: Not yet Defined
*/
private int numOfPuts;
/**
* Represents number of cache misses in this client. IntCounter, "Total number of times a get on
* the cache did not find a value already in local memory." Java: CachePerfStats.misses
*/
private int numOfMisses;
/**
* Represents number of cache listners calls completed. IntCounter, "Total number of times a cache
* listener call has completed." Java: CachePerfStats.cacheListenerCallsCompleted
*/
private int numOfCacheListenerCalls;
/**
* Represents total number of active threads in the client VM. IntCounter, "Current number of live
* threads (both daemon and non-daemon) in this VM." Java: VMStats.threads
**/
private int numOfThreads;
/**
* Represents the CPU time used by the process (in nanoseconds). LongCounter, "CPU timed used by
* the process in nanoseconds." Java: VMStats.processCpuTime
**/
private long processCpuTime;
/**
* Represents the number of cpus available to the java VM on its machine. IntCounter, "Number of
* cpus available to the java VM on its machine." Java: VMStats.cpus
**/
private int cpus;
/**
* client queue sizes
*/
private int queueSize;
/**
* Represents time when this snapshot of the client statistics was taken.
**/
private long upTime;
/**
* Whether a durable client is connected or not to the server.
**/
private boolean connected;
/**
* Number of CQS getting executed by the client
*/
private int clientCQCount;
/**
* Whether the client has subscriptions enabled true or not..
**/
private boolean subscriptionEnabled;
/**
* Represents stats for a poolName .
**/
private Map<String, String> clientPoolStatsMap = new HashMap<String, String>();
/**
* Returns the number of times a successful get operation has occurred.
*/
public int getNumOfGets() {
return numOfGets;
}
/**
* Returns the number of times an entry was added or replaced in this cache as a result of a local
* operation. Operations counted include puts, creates, and gets which result in loading, net
* searching, or net loading a value. The count only includes operations done explicitly on this
* cache, not those that are pushed from other caches.
*/
public int getNumOfPuts() {
return numOfPuts;
}
/**
* Returns the number of times a cache miss has occurred.
*/
public int getNumOfMisses() {
return numOfMisses;
}
/**
* Returns the number of times a cache listener call has completed.
*/
public int getNumOfCacheListenerCalls() {
return numOfCacheListenerCalls;
}
/**
* Returns the number of threads currently in use.
*/
public int getNumOfThreads() {
return numOfThreads;
}
/**
* Returns the amount of time (in nanoseconds) used by the client process.
*/
public long getProcessCpuTime() {
return processCpuTime;
}
/**
* Returns the number of CPUs available to the client.
*/
public int getCpus() {
return cpus;
}
/**
* Returns the amount of time (in seconds) that the client has been running.
*/
public long getUpTime() {
return upTime;
}
/**
* Returns the ID of the client.
*/
public String getClientId() {
return clientId;
}
/**
* Sets the number of times a successful get operation has occurred.
*/
public void setNumOfGets(int numOfGets) {
this.numOfGets = numOfGets;
}
/**
* Set the number of times an entry was added or replaced in this cache as a result of a local
* operation.
*/
public void setNumOfPuts(int numOfPuts) {
this.numOfPuts = numOfPuts;
}
/**
* Sets the number of times a cache miss has occurred.
*/
public void setNumOfMisses(int numOfMisses) {
this.numOfMisses = numOfMisses;
}
/**
* Sets the number of times a cache listener call has completed.
*/
public void setNumOfCacheListenerCalls(int numOfCacheListenerCalls) {
this.numOfCacheListenerCalls = numOfCacheListenerCalls;
}
/**
* Sets the number of threads currently in use.
*/
public void setNumOfThreads(int numOfThreads) {
this.numOfThreads = numOfThreads;
}
/**
* Sets the amount of time (in nanoseconds) used by the client process.
*/
public void setProcessCpuTime(long processCpuTime) {
this.processCpuTime = processCpuTime;
}
/**
* Sets the number of CPUs available to the client.
*/
public void setCpus(int cpus) {
this.cpus = cpus;
}
/**
* Sets the amount of time (in seconds) that the client has been running.
*/
public void setUpTime(long upTime) {
this.upTime = upTime;
}
/**
* Sets the client queue size.
*/
public void setQueueSize(int queueSize) {
this.queueSize = queueSize;
}
/**
* Sets the ID of the client.
*/
public void setClientId(String clientId) {
this.clientId = clientId;
}
/**
* Returns the client queue size.
*/
public int getQueueSize() {
return queueSize;
}
/**
* Returns the name of the client.
*/
public String getName() {
return name;
}
/**
* Returns the name of the host on which the client is running.
*/
public String getHostName() {
return hostName;
}
/**
* Sets the name of the client.
*/
public void setName(String name) {
this.name = name;
}
/**
* Sets the name of the host on which the client is running.
*/
public void setHostName(String hostName) {
this.hostName = hostName;
}
public Map<String, String> getPoolStats() {
return this.clientPoolStatsMap;
}
public void setPoolStats(Map<String, String> map) {
this.clientPoolStatsMap = map;
}
public boolean isConnected() {
return connected;
}
public void setConnected(boolean connected) {
this.connected = connected;
}
public boolean getSubscriptionEnabled() {
return subscriptionEnabled;
}
public int getClientCQCount() {
return clientCQCount;
}
public void setSubscriptionEnabled(boolean subscriptionEnabled) {
this.subscriptionEnabled = subscriptionEnabled;
}
public void setClientCQCount(int clientCQCount) {
this.clientCQCount = clientCQCount;
}
@Override
public String toString() {
return "ClientHealthStatus [clientId=" + clientId + ", name=" + name + ", hostName=" + hostName
+ ", numOfGets=" + numOfGets + ", numOfPuts=" + numOfPuts + ", numOfMisses=" + numOfMisses
+ ", numOfCacheListenerCalls=" + numOfCacheListenerCalls + ", numOfThreads=" + numOfThreads
+ ", processCpuTime=" + processCpuTime + ", cpus=" + cpus + ", queueSize=" + queueSize
+ ", upTime=" + upTime + ", clientPoolStatsMap=" + clientPoolStatsMap + ", connected="
+ connected + " clientCQCount = " + clientCQCount + " subscriptionEnabled = "
+ subscriptionEnabled + "]";
}
}