/**
* This package contains classes for calculating the frequency of an event.
*
* For example, to track the request rate (req/sec), an application call track on a RateTracker for each request.
* Periodically, the application can then retrieve from the RateTracker the request rate (in req/sec) since the last
* time the rate was retrieved. This number can then be passed to a standard Asperatus MetricTracker for persistence.
*
* The AsperatusRateTrackerScheduler is a convenience class designed to schedule this periodic data delivery to the
* MetricTracker. Thus, an application can set up rate tracking by simply ensuring that RateTracker.track is called
* once per request and configuring an AsperatusRateTrackerScheduler with the target Asperatus metric tracker and
* information (metric name and dimensions).
*
* Sample code:
* <code>
* public class MyRequestHandler {
*
* private static final RateTracker rateTracker = new RateTracker();
*
* public Response handleRequest(Request req) {
* rateTracker.track();
* // handle the request...
* }
*
* public static void main(String[] args) {
* RateTracker rateTracker = new RateTracker();
* MetricTracker metricTracker = new MetricTracker();
*
* AsperatusRateTrackerScheduler scheduler =
* new AsperatusRateTrackerScheduler(metricTracker, "metricName", MachineInfo.defaultDimensions, rateTracker);
* scheduler.start();
*
* // continue to start the rest of the application...
* }
*
* }
* </code>
*/
package com.bizo.asperatus.rates;