Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved.
*
* Licensed 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. See accompanying
* LICENSE file.
*/
package com.gemstone.gemfire.internal.cache.tier.sockets;
import com.gemstone.gemfire.StatisticDescriptor;
import com.gemstone.gemfire.Statistics;
import com.gemstone.gemfire.StatisticsFactory;
import com.gemstone.gemfire.StatisticsType;
import com.gemstone.gemfire.StatisticsTypeFactory;
import com.gemstone.gemfire.internal.StatisticsTypeFactoryImpl;
import com.gemstone.gemfire.distributed.internal.DistributionStats;
/**
* Class CacheClientProxyStats tracks GemFire statistics related
* to a {@link CacheClientProxy}. These statistics are related to cache server
* client notifications for each client.
*
* @author Barry Oglesby
*
* @since 4.2
*/
public class CacheClientProxyStats implements MessageStats {
/** The StatisticsType of the statistics */
private static final StatisticsType _type;
/** Name of the messages received statistic */
private static final String MESSAGES_RECEIVED = "messagesReceived";
/** Name of the messages queued statistic */
private static final String MESSAGES_QUEUED = "messagesQueued";
/** Name of the messages not queued because originator statistic */
private static final String MESSAGES_NOT_QUEUED_ORIGINATOR = "messagesNotQueuedOriginator";
/** Name of the messages not queued because not interested statistic */
private static final String MESSAGES_NOT_QUEUED_NOT_INTERESTED = "messagesNotQueuedNotInterested";
/** Name of the messages not queued because conflated statistic */
private static final String MESSAGES_NOT_QUEUED_CONFLATED = "messagesNotQueuedConflated";
/** Name of the messages failed to be queued statistic */
private static final String MESSAGES_FAILED_QUEUED = "messagesFailedQueued";
/** Name of the message queue size statistic */
private static final String MESSAGE_QUEUE_SIZE = "messageQueueSize";
/** Name of the messages removed statistic */
private static final String MESSAGES_PROCESSED = "messagesProcessed";
/** Name of the message processing time statistic */
private static final String MESSAGE_PROCESSING_TIME = "messageProcessingTime";
/** Name of the delta messages sent statistic */
private static final String DELTA_MESSAGES_SENT = "deltaMessagesSent";
/** Name of the delta full messages sent statistic */
private static final String DELTA_FULL_MESSAGES_SENT = "deltaFullMessagesSent";
/** Name of the CQ count statistic */
private static final String CQ_COUNT = "cqCount";
/** Id of the messages received statistic */
private static final int _messagesReceivedId;
/** Id of the messages queued statistic */
private static final int _messagesQueuedId;
/** Id of the messages not queued because originator statistic */
private static final int _messagesNotQueuedOriginatorId;
/** Id of the messages not queued because not interested statistic */
private static final int _messagesNotQueuedNotInterestedId;
/** Id of the messages not queued because conflated statistic */
private static final int _messagesNotQueuedConflatedId;
/** Id of the messages failed to be queued statistic */
private static final int _messagesFailedQueuedId;
/** Id of the message queue size statistic */
private static final int _messageQueueSizeId;
/** Id of the messages removed statistic */
private static final int _messagesProcessedId;
/** Id of the message processing time statistic */
private static final int _messageProcessingTimeId;
/** Id of the prepared delta messages statistic */
private static final int _deltaMessagesSentId;
/** Id of the prepared delta messages statistic */
private static final int _deltaFullMessagesSentId;
/** Id of the CQ count statistic */
private static final int _cqCountId;
private final static int _sentBytesId;
/**
* Static initializer to create and initialize the StatisticsType
*/
static {
String statName = "CacheClientProxyStatistics";
StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
_type = f.createType(statName, statName,
new StatisticDescriptor[] {
f.createIntCounter
(MESSAGES_RECEIVED,
"Number of client messages received.",
"operations"),
f.createIntCounter
(MESSAGES_QUEUED,
"Number of client messages added to the message queue.",
"operations"),
f.createIntCounter
(MESSAGES_FAILED_QUEUED,
"Number of client messages attempted but failed to be added to the message queue.",
"operations"),
f.createIntCounter
(MESSAGES_NOT_QUEUED_ORIGINATOR,
"Number of client messages received but not added to the message queue because the receiving proxy represents the client originating the message.",
"operations"),
f.createIntCounter
(MESSAGES_NOT_QUEUED_NOT_INTERESTED,
"Number of client messages received but not added to the message queue because the client represented by the receiving proxy was not interested in the message's key.",
"operations"),
f.createIntCounter
(MESSAGES_NOT_QUEUED_CONFLATED,
"Number of client messages received but not added to the message queue because the queue already contains a message with the message's key.",
"operations"),
f.createIntGauge
(MESSAGE_QUEUE_SIZE,
"Size of the message queue.",
"operations"),
f.createIntCounter
(MESSAGES_PROCESSED,
"Number of client messages removed from the message queue and sent.",
"operations"),
f.createLongCounter
(MESSAGE_PROCESSING_TIME,
"Total time spent sending messages to clients.",
"nanoseconds"),
f.createIntCounter
(DELTA_MESSAGES_SENT,
"Number of client messages containing only delta bytes dispatched to the client.",
"operations"),
f.createIntCounter
(DELTA_FULL_MESSAGES_SENT,
"Number of client messages dispatched in reponse to failed delta at client.",
"operations"),
f.createLongCounter
(CQ_COUNT,
"Number of CQs on the client.",
"operations"),
f.createLongCounter("sentBytes",
"Total number of bytes sent to client.",
"bytes"),
});
// Initialize id fields
_messagesReceivedId = _type.nameToId(MESSAGES_RECEIVED);
_messagesQueuedId = _type.nameToId(MESSAGES_QUEUED);
_messagesNotQueuedOriginatorId = _type.nameToId(MESSAGES_NOT_QUEUED_ORIGINATOR);
_messagesNotQueuedNotInterestedId = _type.nameToId(MESSAGES_NOT_QUEUED_NOT_INTERESTED);
_messagesNotQueuedConflatedId = _type.nameToId(MESSAGES_NOT_QUEUED_CONFLATED);
_messagesFailedQueuedId = _type.nameToId(MESSAGES_FAILED_QUEUED);
_messageQueueSizeId = _type.nameToId(MESSAGE_QUEUE_SIZE);
_messagesProcessedId = _type.nameToId(MESSAGES_PROCESSED);
_messageProcessingTimeId = _type.nameToId(MESSAGE_PROCESSING_TIME);
_deltaMessagesSentId = _type.nameToId(DELTA_MESSAGES_SENT);
_deltaFullMessagesSentId = _type.nameToId(DELTA_FULL_MESSAGES_SENT);
_cqCountId = _type.nameToId(CQ_COUNT);
_sentBytesId = _type.nameToId("sentBytes");
}
////////////////////// Instance Fields //////////////////////
/** The Statistics instance to which most behavior is delegated */
private final Statistics _stats;
/////////////////////// Constructors ///////////////////////
/**
* Constructor.
*
* @param factory The StatisticsFactory which creates the
* Statistics instance
* @param name The name of the Statistics
*/
public CacheClientProxyStats(StatisticsFactory factory, String name) {
this._stats = factory.createAtomicStatistics(_type, "cacheClientProxyStats-"+name);
}
///////////////////// Instance Methods /////////////////////
/**
* Closes the CacheClientProxyStats.
*/
public void close() {
this._stats.close();
}
/**
* Returns the current value of the "messagesReceived" stat.
* @return the current value of the "messagesReceived" stat
*/
public int getMessagesReceived() {
return this._stats.getInt(_messagesReceivedId);
}
/**
* Returns the current value of the "messagesQueued" stat.
* @return the current value of the "messagesQueued" stat
*/
public int getMessagesQueued() {
return this._stats.getInt(_messagesQueuedId);
}
/**
* Returns the current value of the "messagesNotQueuedOriginator" stat.
* @return the current value of the "messagesNotQueuedOriginator" stat
*/
public int getMessagesNotQueuedOriginator() {
return this._stats.getInt(_messagesNotQueuedOriginatorId);
}
/**
* Returns the current value of the "messagesNotQueuedNotInterested" stat.
* @return the current value of the "messagesNotQueuedNotInterested" stat
*/
public int getMessagesNotQueuedNotInterested() {
return this._stats.getInt(_messagesNotQueuedNotInterestedId);
}
/**
* Returns the current value of the "messagesNotQueuedConflated" stat.
* @return the current value of the "messagesNotQueuedConflated" stat
*/
public int getMessagesNotQueuedConflated() {
return this._stats.getInt(_messagesNotQueuedConflatedId);
}
/**
* Returns the current value of the "messagesFailedQueued" stat.
* @return the current value of the "messagesFailedQueued" stat
*/
public int getMessagesFailedQueued() {
return this._stats.getInt(_messagesFailedQueuedId);
}
/**
* Returns the current value of the "messageQueueSize" stat.
* @return the current value of the "messageQueueSize" stat
*/
public int getMessageQueueSize() {
return this._stats.getInt(_messageQueueSizeId);
}
/**
* Returns the current value of the messagesProcessed" stat.
* @return the current value of the messagesProcessed" stat
*/
public int getMessagesProcessed() {
return this._stats.getInt(_messagesProcessedId);
}
/**
* Returns the current value of the "messageProcessingTime" stat.
* @return the current value of the "messageProcessingTime" stat
*/
public long getMessageProcessingTime() {
return this._stats.getLong(_messageProcessingTimeId);
}
/**
* Returns the current value of the "deltaMessagesSent" stat.
* @return the current value of the "deltaMessagesSent" stat
*/
public int getDeltaMessagesSent() {
return this._stats.getInt(_deltaMessagesSentId);
}
/**
* Returns the current value of the "deltaFullMessagesSent" stat.
* @return the current value of the "deltaFullMessagesSent" stat
*/
public int getDeltaFullMessagesSent() {
return this._stats.getInt(_deltaFullMessagesSentId);
}
/**
* Returns the current value of the "cqCount" stat.
* @return the current value of the "cqCount" stat
*/
public int getCqCount() {
return this._stats.getInt(_cqCountId);
}
/**
* Increments the "messagesReceived" stat.
*/
public void incMessagesReceived()
{
this._stats.incInt(_messagesReceivedId, 1);
}
/**
* Increments the "messagesQueued" stat.
*/
public void incMessagesQueued()
{
this._stats.incInt(_messagesQueuedId, 1);
}
/**
* Increments the "messagesNotQueuedOriginator" stat.
*/
public void incMessagesNotQueuedOriginator()
{
this._stats.incInt(_messagesNotQueuedOriginatorId, 1);
}
/**
* Increments the "messagesNotQueuedNotInterested" stat.
*/
public void incMessagesNotQueuedNotInterested()
{
this._stats.incInt(_messagesNotQueuedNotInterestedId, 1);
}
/**
* Increments the "messagesNotQueuedConflated" stat.
*/
public void incMessagesNotQueuedConflated()
{
this._stats.incInt(_messagesNotQueuedConflatedId, 1);
}
/**
* Increments the "messagesFailedQueued" stat.
*/
public void incMessagesFailedQueued()
{
this._stats.incInt(_messagesFailedQueuedId, 1);
}
/**
* Increments the "cqCount" stat.
*/
public void incCqCount()
{
this._stats.incInt(_cqCountId, 1);
}
/**
* Decrements the "cqCount" stat.
*/
public void decCqCount()
{
this._stats.incInt(_cqCountId, -1);
}
/**
* Sets the "messageQueueSize" stat.
* @param size The size of the queue
*/
public void setQueueSize(int size)
{
this._stats.setInt(_messageQueueSizeId, size);
}
/**
* Returns the current time (ns).
* @return the current time (ns)
*/
public long startTime()
{
return DistributionStats.getStatTime();
}
/**
* Increments the "messagesProcessed" and "messageProcessingTime" stats.
* @param start The start of the message (which is decremented from the current
* time to determine the message processing time).
*/
public void endMessage(long start)
{
long ts = DistributionStats.getStatTime();
// Increment number of notifications
this._stats.incInt(_messagesProcessedId, 1);
// Increment notification time
long elapsed = ts-start;
this._stats.incLong(_messageProcessingTimeId, elapsed);
}
/**
* Increments the "deltaMessagesSent" stats.
*/
public void incDeltaMessagesSent() {
this._stats.incInt(_deltaMessagesSentId, 1);
}
/**
* Increments the "deltaFullMessagesSent" stats.
*/
public void incDeltaFullMessagesSent() {
this._stats.incInt(_deltaFullMessagesSentId, 1);
}
public final void incReceivedBytes(long v) {
// noop since we never receive
}
public final void incSentBytes(long v) {
this._stats.incLong(_sentBytesId, v);
}
public void incMessagesBeingReceived(int bytes) {
// noop since we never receive
}
public void decMessagesBeingReceived(int bytes) {
// noop since we never receive
}
}