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)