Count

This packag provides a set of interfaces and classes used to create performance counters.

Important points

  • Performance counters show non-functional characteristics about how the code works, such as times called, response time, objects saved/processed. Using these numbers, it is possible to show how the code works in the system – how stable, fast, expandable it is.

Constants

CounterType

Types of counters that measure different types of metrics


Interfaces

ICounters

Interface for performance counters that measure execution metrics.

The performance counters measure how code is performing: how fast or slow, how many transactions performed, how many objects are stored, what was the latest transaction time and so on.

ICounterTimingCallback

Interface for a callback to end measurement of execution elapsed time.


Classes

CachedCounters

Abstract implementation of performance counters that measures and stores counters in memory. Child classes implement saving of the counters into various destinations.

CompositeCounters

Aggregates all counters from component references under a single component.

It allows to capture metrics and conveniently send them to multiple destinations.

Counter

Data object to store measurement for a performance counter. This object is used by CachedCounters to store counters.

CounterTiming

Callback object returned by ICounters.begin_timing to end timing of execution block and update the associated counter.

DefaultCountersFactory

Creates ICounters components by their descriptors.

LogCounters

Performance counters that periodically dumps counters measurements to logger.

NullCounters

Dummy implementation of performance counters that doesn’t do anything.

It can be used in testing or in situations when a counter is required but shall be disabled.