Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.i2p.stat
Class StatManager

    java.lang.Object
      net.i2p.stat.StatManager

    public class StatManager

extends Object

Coordinate the management of various frequencies and rates within I2P components, both allowing central update and retrieval, as well as distributed creation and use. This does not provide any persistence, but the data structures exposed can be read and updated to manage the complete state.

Field Summary
`static String` | `DEFAULT_STAT_FILE`
`static String` | `DEFAULT_STAT_REQUIRED` These are all the stats published in netDb, plus those required for the operation of the router (many in RouterThrottleImpl), plus those that are on graphs.jsp by default, plus those used on the summary bar (SummaryHelper.java).
`static String` | `PROP_STAT_FILE`
`static String` | `PROP_STAT_FILTER` Comma-separated stats or * for all.
`static String` | `PROP_STAT_FULL` default true
`static String` | `PROP_STAT_REQUIRED`

Constructor Summary
`StatManager(I2PAppContext context)` The stat manager should only be constructed and accessed through the application context.

Method Summary
`void` | `addRateData(String name, long data, long eventDuration)` update the given rate statistic, taking note that the given data point was received (and recalculating all rates)
`void` | `coalesceStats()`
`void` | `createFrequencyStat(String name, String description, String group, long[] periods)` Create a new statistic to monitor the frequency of some event.
`void` | `createRateStat(String name, String description, String group, long[] periods)` Create a new statistic to monitor the average value and confidence of some action.
`FrequencyStat` | `getFrequency(String name)`
`Set<String>` | `getFrequencyNames()`
`RateStat` | `getRate(String name)`
`Set<String>` | `getRateNames()`
`String` | `getStatFile()`
`String` | `getStatFilter()`
`StatLog` | `getStatLog()` may be null
`Map` | `getStatsByGroup()` Group name (String) to a Set of stat names, ordered alphabetically
`boolean` | `ignoreStat(String statName)` Save memory by not creating stats unless they are required for router operation
`boolean` | `isFrequency(String statName)` is the given stat a monitored frequency?
`boolean` | `isRate(String statName)` is the given stat a monitored rate?
`void` | `removeRateStat(String name)`
`void` | `setStatLog(StatLog log)`
`void` | `updateFrequency(String name)` update the given frequency statistic, taking note that an event occurred (and recalculating all frequencies)

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PROP_STAT_FILTER

    public static final String PROP_STAT_FILTER

  Comma-separated stats or * for all. This property must be set at startup, or logging is disabled.

  See Also:
    Constant Field Values

### PROP_STAT_FILE

    public static final String PROP_STAT_FILE

See Also:
  Constant Field Values

### DEFAULT_STAT_FILE

    public static final String DEFAULT_STAT_FILE

See Also:
  Constant Field Values

### PROP_STAT_FULL

    public static final String PROP_STAT_FULL

  default true

  See Also:
    Constant Field Values

### PROP_STAT_REQUIRED

    public static final String PROP_STAT_REQUIRED

See Also:
  Constant Field Values

### DEFAULT_STAT_REQUIRED

    public static final String DEFAULT_STAT_REQUIRED

  These are all the stats published in netDb, plus those required for the operation of the router (many in RouterThrottleImpl), plus those that are on graphs.jsp by default, plus those used on the summary bar (SummaryHelper.java). Wildcard ('*') allowed at end of stat only. Ignore all the rest of the stats unless stat.full=true.

  See Also:
    Constant Field Values

Constructor Detail

### StatManager

    public StatManager(I2PAppContext context)

  The stat manager should only be constructed and accessed through the application context. This constructor should only be used by the appropriate application context itself.

Method Detail

### getStatLog

    public StatLog getStatLog()

  may be null

### setStatLog

    public void setStatLog(StatLog log)

### createFrequencyStat

    public void createFrequencyStat(String name,
                                    String description,
                                    String group,
                                    long[] periods)

  Create a new statistic to monitor the frequency of some event.

  Parameters:
    `name` - unique name of the statistic
    `description` - simple description of the statistic
    `group` - used to group statistics together
    `periods` - array of period lengths (in milliseconds)

### createRateStat

    public void createRateStat(String name,
                               String description,
                               String group,
                               long[] periods)

  Create a new statistic to monitor the average value and confidence of some action.

  Parameters:
    `name` - unique name of the statistic
    `description` - simple description of the statistic
    `group` - used to group statistics together
    `periods` - array of period lengths (in milliseconds)

### removeRateStat

    public void removeRateStat(String name)

### updateFrequency

    public void updateFrequency(String name)

  update the given frequency statistic, taking note that an event occurred (and recalculating all frequencies)

### addRateData

    public void addRateData(String name,
                            long data,
                            long eventDuration)

  update the given rate statistic, taking note that the given data point was received (and recalculating all rates)

### coalesceStats

    public void coalesceStats()

### getFrequency

    public FrequencyStat getFrequency(String name)

### getRate

    public RateStat getRate(String name)

### getFrequencyNames

    public Set<String> getFrequencyNames()

### getRateNames

    public Set<String> getRateNames()

### isRate

    public boolean isRate(String statName)

  is the given stat a monitored rate?

### isFrequency

    public boolean isFrequency(String statName)

  is the given stat a monitored frequency?

### getStatsByGroup

    public Map getStatsByGroup()

  Group name (String) to a Set of stat names, ordered alphabetically

### getStatFilter

    public String getStatFilter()

### getStatFile

    public String getStatFile()

### ignoreStat

    public boolean ignoreStat(String statName)

  Save memory by not creating stats unless they are required for router operation

  Returns:
    true if the stat should be ignored.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD