public interface StatisticsFactory extends StatisticsTypeFactory
Statistics. It can
also be used to create instances of StatisticDescriptor and StatisticsType
because it implements StatisticsTypeFactory.
DistributedSystem is the only instance of this interface.
A StatisticsFactory can create a statistic of two
numeric types: long, and double. A statistic
(StatisticDescriptor) can either be a gauge meaning that its value can
increase and decrease or a counter meaning that its value is strictly increasing.
The following code is an example of how to create a type using the api. In this example the type has two stats whose values always increase:
StatisticsFactory f = ...;
StatisticsType t = f.createType(
"StatSampler",
"Stats on the statistic sampler.",
new StatisticDescriptor[] {
f.createLongCounter("sampleCount",
"Total number of samples taken by this sampler.",
"samples"),
f.createLongCounter("sampleTime",
"Total amount of time spent taking samples.",
"milliseconds"),
}
);
this.samplerStats = f.createStatistics(t, "statSampler");
this.sampleCountId = this.samplerStats.nameToId("sampleCount");
this.sampleTimeId = this.samplerStats.nameToId("sampleTime");
Later on the stat ids can be used to increment the stats:
this.samplerStats.incLong(this.sampleCountId, 1); this.samplerStats.incLong(this.sampleTimeId, nanosSpentWorking / 1000000);
The following is an example of how to create the same type using XML. The XML data:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE statistics PUBLIC
"-//GemStone Systems, Inc.//GemFire Statistics Type//EN"
"http://www.gemstone.com/dtd/statisticsType.dtd">
<statistics>
<type name="StatSampler">
<description>Stats on the statistic sampler.</description>
<stat name="sampleCount" storage="long" counter="true">
<description>Total number of samples taken by this sampler.</description>
<unit>samples</unit>
</stat>
<stat name="sampleTime" storage="long" counter="true">
<description>Total amount of time spent taking samples.</description>
<unit>milliseconds</unit>
</stat>
</type>
</statistics>
The code to create the type:
StatisticsFactory f = ...;
Reader r = new InputStreamReader("fileContainingXmlData"));
StatisticsType type = f.createTypesFromXml(r)[0];
MAX_DESCRIPTORS_PER_TYPE| Modifier and Type | Method and Description |
|---|---|
Statistics |
createAtomicStatistics(StatisticsType type)
Creates and returns a
Statistics instance of the given type with
default ids. |
Statistics |
createAtomicStatistics(StatisticsType type,
String textId)
|
Statistics |
createAtomicStatistics(StatisticsType type,
String textId,
long numericId)
|
Statistics |
createStatistics(StatisticsType type)
Creates and returns a
Statistics instance of the given type with
default ids. |
Statistics |
createStatistics(StatisticsType type,
String textId)
|
Statistics |
createStatistics(StatisticsType type,
String textId,
long numericId)
|
Statistics[] |
findStatisticsByNumericId(long numericId)
Returns an array of all the existing statistics with the given numericId.
|
Statistics[] |
findStatisticsByTextId(String textId)
Returns an array of all the existing statistics with the given textId.
|
Statistics[] |
findStatisticsByType(StatisticsType type)
Returns an array of all the existing statistics of the given type.
|
createDoubleCounter, createDoubleCounter, createDoubleGauge, createDoubleGauge, createIntCounter, createIntCounter, createIntGauge, createIntGauge, createLongCounter, createLongCounter, createLongGauge, createLongGauge, createType, createTypesFromXml, findTypeStatistics createStatistics(StatisticsType type)
Statistics instance of the given type with
default ids.
The created instance may not be atomic.
type - the type of Statistics instanceStatistics instanceStatistics createStatistics(StatisticsType type, String textId)
Statistics instance of the given type,
textId, and with a default numeric id.
The created instance may not be atomic.
type - the type of Statistics instancetextId - the textId of the Statistics instanceStatistics instanceStatistics createStatistics(StatisticsType type, String textId, long numericId)
Statistics instance of the given type,
textId, and numericId.
The created instance may not be atomic.
type - the type of Statistics instancetextId - the textId of the Statistics instancenumericId - the numericId of the Statistics instanceStatistics instanceStatistics createAtomicStatistics(StatisticsType type)
Statistics instance of the given type with
default ids.
The created instance will be atomic.
type - the type of Statistics instanceStatistics instanceStatistics createAtomicStatistics(StatisticsType type, String textId)
Statistics instance of the given type,
textId, and with a default numeric id.
The created instance will be atomic.
type - the type of Statistics instancetextId - the textId of the Statistics instanceStatistics instanceStatistics createAtomicStatistics(StatisticsType type, String textId, long numericId)
Statistics instance of the given type,
textId, and numericId.
The created instance will be atomic.
type - the type of Statistics instancetextId - the textId of the Statistics instancenumericId - the numericId of the Statistics instanceStatistics instanceStatistics[] findStatisticsByType(StatisticsType type)
type - the type of statistics to findStatistics[] findStatisticsByTextId(String textId)
textId - the textId of statistics to findStatistics[] findStatisticsByNumericId(long numericId)
numericId - the numericId of statistics to find