# collector v0.1.1 - API Reference

## Modules

- [Collector](Collector.md): Reports your app's errors to Collector.
- [Collector.Breadcrumbs](Collector.Breadcrumbs.md): What a process did just before it crashed: its last 50 log lines (info
and above), plus Ecto queries for the repos in `config :collector,
repos: [[:my_app, :repo]]` (their telemetry prefixes).
- [Collector.Config](Collector.Config.md): Where events go and what they say about the app. Everything has a
default, the DSN included: set `COLLECTOR_DSN` in the environment, or
configure it yourself
- [Collector.Event](Collector.Event.md): Builds protocol v1 events (see Collector's `docs/protocol.md`): plain
string-keyed maps, ready to encode as JSON.

- [Collector.LoggerHandler](Collector.LoggerHandler.md): An Erlang `:logger` handler that reports crashes and records
breadcrumbs.
- [Collector.Oban](Collector.Oban.md): Reports Oban job failures. Attached on its own when Oban is loaded.
- [Collector.Plug](Collector.Plug.md): Attaches the current request to any error reported while handling it.
- [Collector.Sender](Collector.Sender.md): Sends events to Collector in the background, one at a time, so that a
slow or unreachable Collector never slows the app down.
- [Collector.Source](Collector.Source.md): Source lines around a frame, so Collector can show the failing line.
- [Collector.Stacktrace](Collector.Stacktrace.md): Turns an Elixir stacktrace into protocol frames, innermost first (the
order Elixir already uses), each marked `in_app` when it is the app's
own code. Collector groups errors by those frames, so that mark is the
most important thing this package gets right.

## Mix Tasks

- [mix collector.package_source](Mix.Tasks.Collector.PackageSource.md): Stores your app's `lib/**/*.ex` inside the collector dependency's
build, so a release, which ships no source files, can still send the
lines around each frame of your code.

