You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dan Smith (JIRA)" <ji...@apache.org> on 2016/06/01 23:04:59 UTC
[jira] [Created] (GEODE-1494) Allow users to provide callbacks to
sample statistics
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)