# 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)