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:
    Package introduction
    • Method Detail

      • createAtomicStatistics

        Statistics createAtomicStatistics​(StatisticsType type,
                                          java.lang.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,
                                          java.lang.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​(java.lang.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