Dan Smith created GEODE-1494:
--------------------------------

             Summary: Allow users to provide callbacks to sample statistics
                 Key: GEODE-1494
                 URL: https://issues.apache.org/jira/browse/GEODE-1494
             Project: Geode
          Issue Type: Improvement
            Reporter: Dan Smith


The Statistics interface has methods to increment, set, and get the value of 
various statistics. The statistics are sampled at the sample-rate by the stat 
sampling thread.

We should add a way to provide a callback that computes the value of the 
statistic. The callback can be called by the stat sampling thread to compute 
the value at the sample time.

This is useful because some statistics are hard to update correctly using using 
increment operations. For example, tracking the total number of entries in a 
parallel async event queue is tricky, because buckets may move on and off of a 
node while concurrent operations are also adding entries. But measuring the 
current size of the queue is easy by just calling size on the underlying 
regions.

Here are the proposed new methods on the statistics interface:

{code}
  /**
   * Provide a callback to compute the value of this statistic
   * every sample interval and use that as the value of the stat.
   *
   */
  public void sampleInt(int id, IntSupplier sampler);
  public void sampleLong(int id, LongSupplier supplier);
  public void sampleDouble(int id, DoubleSupplier supplier);
  public void sampleInt(String name, IntSupplier sampler);
  public void sampleLong(String name, LongSupplier supplier);
  public void sampleDouble(String name, DoubleSupplier supplier);
  public void sampleInt(StatisticDescriptor descriptor, IntSupplier sampler);
  public void sampleLong(StatisticDescriptor descriptor, LongSupplier supplier);
  public void sampleDouble(StatisticDescriptor descriptor, DoubleSupplier 
supplier);
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to