All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gemstone.gemfire.management.ClientHealthStatus Maven / Gradle / Ivy

/*
 * 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 com.gemstone.gemfire.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.
 * 
 * @author rishim, ajayp
 * @since 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 clientPoolStatsMap = new HashMap(); 

  /**
   * 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 getPoolStats(){
    return this.clientPoolStatsMap ;
  }
  
  public void setPoolStats(Map 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 + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy