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
Atomic Counter
AtomicCounter data object to store measurement for a performance counter. This object is used by CachedCounters to store counters.
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.
Types
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.BeginTiming to end timing of execution block and update the associated counter.
DefaultCountersFactory
Creates ICounters components by their descriptors.
ICachedCountersOverrides
Provides a save method for counters.
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.