Interface StatisticsFactory

All Superinterfaces:
StatisticsTypeFactory
All Known Implementing Classes:
DistributedSystem

public interface StatisticsFactory extends StatisticsTypeFactory
Instances of this interface provide methods that create instances of 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];
 

Since:
GemFire 3.0
See Also:
  • Method Details

    • createStatistics

      Statistics createStatistics(StatisticsType type)
      Creates and returns a Statistics instance of the given type with default ids.

      The created instance may not be atomic.

      Parameters:
      type - the type of Statistics instance
      Returns:
      a newly created Statistics instance
    • createStatistics

      Statistics createStatistics(StatisticsType type, String textId)
      Creates and returns a Statistics instance of the given type, textId, and with a default numeric id.

      The created instance may not be atomic.

      Parameters:
      type - the type of Statistics instance
      textId - the textId of the Statistics instance
      Returns:
      a newly created Statistics instance
    • createStatistics

      Statistics createStatistics(StatisticsType type, String textId, long numericId)
      Creates and returns a Statistics instance of the given type, textId, and numericId.

      The created instance may not be atomic.

      Parameters:
      type - the type of Statistics instance
      textId - the textId of the Statistics instance
      numericId - the numericId of the Statistics instance
      Returns:
      a newly created Statistics instance
    • createAtomicStatistics

      Statistics createAtomicStatistics(StatisticsType type)
      Creates and returns a Statistics instance of the given type with default ids.

      The created instance will be atomic.

      Parameters:
      type - the type of Statistics instance
      Returns:
      a newly created Statistics instance
    • createAtomicStatistics

      Statistics createAtomicStatistics(StatisticsType type, String textId)
      Creates and returns a Statistics instance of the given type, textId, and with a default numeric id.

      The created instance will be atomic.

      Parameters:
      type - the type of Statistics instance
      textId - the textId of the Statistics instance
      Returns:
      a newly created Statistics instance
    • createAtomicStatistics

      Statistics createAtomicStatistics(StatisticsType type, String textId, long numericId)
      Creates and returns a Statistics instance of the given type, textId, and numericId.

      The created instance will be atomic.

      Parameters:
      type - the type of Statistics instance
      textId - the textId of the Statistics instance
      numericId - the numericId of the Statistics instance
      Returns:
      a newly created Statistics instance
    • findStatisticsByType

      Statistics[] findStatisticsByType(StatisticsType type)
      Returns an array of all the existing statistics of the given type.
      Parameters:
      type - the type of statistics to find
      Returns:
      an array of all the existing statistics of the given type
    • findStatisticsByTextId

      Statistics[] findStatisticsByTextId(String textId)
      Returns an array of all the existing statistics with the given textId.
      Parameters:
      textId - the textId of statistics to find
      Returns:
      an array of all the existing statistics with the given textId
    • findStatisticsByNumericId

      Statistics[] findStatisticsByNumericId(long numericId)
      Returns an array of all the existing statistics with the given numericId.
      Parameters:
      numericId - the numericId of statistics to find
      Returns:
      an array of all the existing statistics with the given numericId