[ https://issues.apache.org/jira/browse/GEODE-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Smith reassigned GEODE-1494: -------------------------------- Assignee: Dan Smith > 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 > Assignee: 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)