com.gemstone.gemfire.internal.cache.ha.HARegionQueueStats Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gemfire-core Show documentation
Show all versions of gemfire-core Show documentation
SnappyData store based off Pivotal GemFireXD
The newest version!
/*
* 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.ha;
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;
/**
* This class tracks GemFire statistics related to a {@link HARegionQueue}.
*
* @author Dinesh Patel
*
*/
public class HARegionQueueStats
{
/** The StatisticsType
of the statistics */
private static final StatisticsType _type;
/** Name of the events queued statistic */
protected static final String EVENTS_QUEUED = "eventsQueued";
/** Name of the events conflated statistic */
protected static final String EVENTS_CONFLATED = "eventsConflated";
/** Name of the marker events conflated statistic */
protected static final String MARKER_EVENTS_CONFLATED = "markerEventsConflated";
/** Name of the events removed statistic */
protected static final String EVENTS_REMOVED = "eventsRemoved";
/** Name of the events taken statistic */
protected static final String EVENTS_TAKEN = "eventsTaken";
/** Name of the events expired statistic */
protected static final String EVENTS_EXPIRED = "eventsExpired";
/** Name of the events removed by QRM statistic */
protected static final String EVENTS_REMOVED_BY_QRM = "eventsRemovedByQrm";
/** Name of the thread identifiers statistic */
protected static final String THREAD_IDENTIFIERS = "threadIdentifiers";
/** Name of the events dispatched statistic */
protected static final String EVENTS_DISPATCHED = "eventsDispatched";
/**
* Name of the num void removals statistic. This refers to the events which
* were supposed to be destroyed from queue through remove() but were removed
* by some other operation like conflation or expiration.
*/
protected static final String NUM_VOID_REMOVALS = "numVoidRemovals";
/**
* Name of the number of sequence violated events statistic. This refers to
* the events which has sequence id less than lastSequnceId hence not put in
* the region queue
*/
protected static final String NUM_SEQUENCE_VIOLATED = "numSequenceViolated";
/** Id of the events queued statistic */
private static final int _eventsQueuedId;
/** Id of the events conflated statistic */
private static final int _eventsConflatedId;
/** Id of the marker events conflated statistic */
private static final int _markerEventsConflatedId;
/** Id of the events removed statistic */
private static final int _eventsRemovedId;
/** Id of the events taken statistic */
private static final int _eventsTakenId;
/** Id of the events expired statistic */
private static final int _eventsExpiredId;
/** Id of the events removed by qrm statistic */
private static final int _eventsRemovedByQrmId;
/** Id of the thread identifiers statistic */
private static final int _threadIdentifiersId;
/** Id of the num events dispatched statistic */
private static final int _eventsDispatched;
/** Id of the num void removal statistic */
private static final int _numVoidRemovals;
/** Id of the num sequence violated statistic */
private static final int _numSequenceViolated;
/**
* Static initializer to create and initialize the StatisticsType
*/
static {
String statName = "ClientSubscriptionStats";
StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
_type = f.createType(statName, statName, new StatisticDescriptor[] {
f.createLongCounter(EVENTS_QUEUED, "Number of events added to queue.",
"operations"),
f.createLongCounter(EVENTS_CONFLATED,
"Number of events conflated for the queue.", "operations"),
f.createLongCounter(MARKER_EVENTS_CONFLATED,
"Number of marker events conflated for the queue.", "operations"),
f.createLongCounter(EVENTS_REMOVED,
"Number of events removed from the queue.", "operations"),
f.createLongCounter(EVENTS_TAKEN,
"Number of events taken from the queue.", "operations"),
f.createLongCounter(EVENTS_EXPIRED,
"Number of events expired from the queue.", "operations"),
f.createLongCounter(EVENTS_REMOVED_BY_QRM,
"Number of events removed by QRM message.", "operations"),
f.createIntCounter(THREAD_IDENTIFIERS,
"Number of ThreadIdenfier objects for the queue.", "units"),
f.createLongCounter(EVENTS_DISPATCHED,
"Number of events that have been dispatched.", "operations"),
f.createLongCounter(NUM_VOID_REMOVALS,
"Number of void removals from the queue.", "operations"),
f.createLongCounter(NUM_SEQUENCE_VIOLATED,
"Number of events that has violated sequence.", "operations")
});
// Initialize id fields
_eventsQueuedId = _type.nameToId(EVENTS_QUEUED);
_eventsConflatedId = _type.nameToId(EVENTS_CONFLATED);
_markerEventsConflatedId = _type.nameToId(MARKER_EVENTS_CONFLATED);
_eventsRemovedId = _type.nameToId(EVENTS_REMOVED);
_eventsTakenId = _type.nameToId(EVENTS_TAKEN);
_eventsExpiredId = _type.nameToId(EVENTS_EXPIRED);
_eventsRemovedByQrmId = _type.nameToId(EVENTS_REMOVED_BY_QRM);
_threadIdentifiersId = _type.nameToId(THREAD_IDENTIFIERS);
_eventsDispatched = _type.nameToId(EVENTS_DISPATCHED);
_numVoidRemovals = _type.nameToId(NUM_VOID_REMOVALS);
_numSequenceViolated = _type.nameToId(NUM_SEQUENCE_VIOLATED);
}
/** The Statistics
instance to which most behavior is delegated */
private final Statistics _stats;
/**
* Constructor.
*
* @param factory
* The StatisticsFactory
which creates the
* Statistics
instance
* @param name
* The name of the Statistics
*/
public HARegionQueueStats(StatisticsFactory factory, String name) {
this._stats = factory.createAtomicStatistics(_type, "ClientSubscriptionStats-"
+ name);
}
// /////////////////// Instance Methods /////////////////////
/**
* Closes the HARegionQueueStats
.
*/
public void close()
{
this._stats.close();
}
/**
* Returns the current value of the "eventsQueued" stat.
*
* @return the current value of the "eventsQueued" stat
*/
public long getEventsEnqued()
{
return this._stats.getLong(_eventsQueuedId);
}
/**
* Increments the "eventsQueued" stat by 1.
*/
public void incEventsEnqued()
{
this._stats.incLong(_eventsQueuedId, 1);
}
/**
* Returns the current value of the "eventsConflated" stat.
*
* @return the current value of the "eventsConflated" stat
*/
public long getEventsConflated()
{
return this._stats.getLong(_eventsConflatedId);
}
/**
* Increments the "eventsConflated" stat by 1.
*/
public void incEventsConflated()
{
this._stats.incLong(_eventsConflatedId, 1);
}
/**
* Returns the current value of the "markerEventsConflated" stat.
*
* @return the current value of the "markerEventsConflated" stat
*/
public long getMarkerEventsConflated()
{
return this._stats.getLong(_markerEventsConflatedId);
}
/**
* Increments the "markerEventsConflated" stat by 1.
*/
public void incMarkerEventsConflated()
{
this._stats.incLong(_markerEventsConflatedId, 1);
}
/**
* Returns the current value of the "eventsRemoved" stat.
*
* @return the current value of the "eventsRemoved" stat
*/
public long getEventsRemoved()
{
return this._stats.getLong(_eventsRemovedId);
}
/**
* Increments the "eventsRemoved" stat by 1.
*/
public void incEventsRemoved()
{
this._stats.incLong(_eventsRemovedId, 1);
}
/**
* Returns the current value of the "eventsTaken" stat.
*
* @return the current value of the "eventsTaken" stat
*/
public long getEventsTaken()
{
return this._stats.getLong(_eventsTakenId);
}
/**
* Increments the "eventsTaken" stat by 1.
*/
public void incEventsTaken()
{
this._stats.incLong(_eventsTakenId, 1);
}
/**
* Returns the current value of the "eventsExpired" stat.
*
* @return the current value of the "eventsExpired" stat
*/
public long getEventsExpired()
{
return this._stats.getLong(_eventsExpiredId);
}
/**
* Increments the "eventsExpired" stat by 1.
*/
public void incEventsExpired()
{
this._stats.incLong(_eventsExpiredId, 1);
}
/**
* Returns the current value of the "eventsRemovedByQrm" stat.
*
* @return the current value of the "eventsRemovedByQrm" stat
*/
public long getEventsRemovedByQrm()
{
return this._stats.getLong(_eventsRemovedByQrmId);
}
/**
* Increments the "eventsRemovedByQrm" stat by 1.
*/
public void incEventsRemovedByQrm()
{
this._stats.incLong(_eventsRemovedByQrmId, 1);
}
/**
* Returns the current value of the "threadIdentifiers" stat.
*
* @return the current value of the "threadIdentifiers" stat
*/
public int getThreadIdentiferCount()
{
return this._stats.getInt(_threadIdentifiersId);
}
/**
* Increments the "threadIdentifiers" stat by 1.
*/
public void incThreadIdentifiers()
{
this._stats.incInt(_threadIdentifiersId, 1);
}
/**
* Returns the current value of the "eventsDispatched" stat.
*
* @return the current value of the "eventsDispatched" stat
*/
public long getEventsDispatched()
{
return this._stats.getLong(_eventsDispatched);
}
/**
* Increments the "eventsDispatched" stat by 1.
*/
public void incEventsDispatched()
{
this._stats.incLong(_eventsDispatched, 1);
}
/**
* Returns the current value of the "numVoidRemovals" stat.
*
* @return the current value of the "numVoidRemovals" stat
*/
public long getNumVoidRemovals()
{
return this._stats.getLong(_numVoidRemovals);
}
/**
* Increments the "numVoidRemovals" stat by 1.
*/
public void incNumVoidRemovals()
{
this._stats.incLong(_numVoidRemovals, 1);
}
/**
* Returns the current value of the "numSequenceViolated" stat.
*
* @return the current value of the "numSequenceViolated" stat
*/
public long getNumSequenceViolated()
{
return this._stats.getLong(_numSequenceViolated);
}
/**
* Increments the "numSequenceViolated" stat by 1.
*/
public void incNumSequenceViolated()
{
this._stats.incLong(_numSequenceViolated, 1);
}
/**
* Returns true if the stats instance has been closed.
*
* @return true if the stats instance has been closed.
*/
public boolean isClosed()
{
return this._stats.isClosed();
}
}