Class RateTracker

Tracks the rate of events. It's also able to compute the min,max and average interval between events.

const clicks = Trackers.rate();

// Mark when a click happens
document.addEventListener(`click`, () => clicks.mark());

// Get details
clicks.perSecond; // How many clicks per second
clicks.perMinute; // How many clicks per minute

timeoutInterval is a useful option to make the tracker reset after some period without mark() being called.

Another useful option is sampleLimit, which sets an upper bound for how many events to track. A smaller value means the results will more accurately track, but it might be less smooth.

// Eg reset tracker after 5 seconds of inactivity
const clicks = Trackers.rate({
sampleLimit: 10,
timeoutInterval: { secs: 5 }
});

Constructors

  • Parameters

    • opts: Partial<Readonly<{
          resetAfterSamples?: number;
          sampleLimit?: number;
          timeoutInterval?: Interval;
      }>> = {}

    Returns RateTracker

Accessors

  • get elapsed(): number
  • Returns the time period (in milliseconds) that encompasses the data set. Eg, a result of 1000 means there's data that covers a one second period.

    Returns number

  • get perMinute(): number
  • Get the number of events per minute

    Returns number

  • get perSecond(): number
  • Get the number of events per second

    Returns number

Methods

  • Compute {min,max,avg} for the interval between events.

    Returns {
        avg: number;
        max: number;
        min: number;
    }

    • avg: number
    • max: number
    • min: number
  • Mark that an event has happened

    Returns void

  • Resets the tracker.

    Returns void