# Instruments v2.12.0 - Table of Contents

> A small, fast, and unobtrusive metrics library

## Pages

- [Overview](overview.md)
- [Configuration](configuration.md)
- [Probes](probes.md)
- [Performance](performance.md)

## Modules

- [Instruments](Instruments.md): Instruments allows you to easily create and emit metrics from your application.
- [Instruments.CustomFunctions](Instruments.CustomFunctions.md): Creates custom prefixed functions
- [Instruments.Probe](Instruments.Probe.md): A behavior for a Probe.
- [Instruments.Probes.Allocators](Instruments.Probes.Allocators.md): A probe that reports per-allocator memory statistics.
- [Instruments.Probes.Schedulers](Instruments.Probes.Schedulers.md): A probe that reports erlang's internal CPU usage
- [Instruments.RateTracker](Instruments.RateTracker.md): RateTracker will track how often you are reporting metrics that are not backed 
by a "fast" implementation.
- [Instruments.Statix](Instruments.Statix.md): The default stats reporter. Uses the `Statix` library.

- [Instruments.StatsReporter](Instruments.StatsReporter.md): A behavoiur for reporters.
- [Instruments.StatsReporter.Logger](Instruments.StatsReporter.Logger.md): A StatsReporter that logs to the `Logger` module.

- [Instruments.StatsReporter.Null](Instruments.StatsReporter.Null.md): A StatsReporter module that throws out all logging messages.

- [Instruments.Sysmon.Emitter](Instruments.Sysmon.Emitter.md): The Emitter is a simple module that subscribes to the Reporter and will invoke
the corresponding handler on the Receiver.

- [Instruments.Sysmon.Receiver](Instruments.Sysmon.Receiver.md): The Receiver behavior defines callbacks that are invoked by the Emitter in
response to system monitor events.

- [Instruments.Sysmon.Receiver.Log](Instruments.Sysmon.Receiver.Log.md): This module emits system monitor events

- [Instruments.Sysmon.Receiver.Metrics](Instruments.Sysmon.Receiver.Metrics.md): This module emits system monitor events

- [Instruments.Sysmon.Reporter](Instruments.Sysmon.Reporter.md): Since only one process can subscribe to system monitor events, the Reporter
acts as a relay for system monitor events, allowing multiple subscribers to
receive system monitor events.
- [Instruments.Sysmon.Supervisor](Instruments.Sysmon.Supervisor.md): The system monitor is broken into three concepts: the Reporter, the Emitter,
and the Receiver.

- Exceptions
  - [Instruments.Probe.Errors.ProbeNameTakenError](Instruments.Probe.Errors.ProbeNameTakenError.md)

