Observability Working Group
Project for tracking the work of the Observability Working Group
Current WG projects
Awesome BEAM Observability
The curated list of tools for monitoring, instrumenting, and tracing
applications that run on BEAM. Inspired by many of such lists over the GitHub.
Blog posts
Logging
lager
- popular logging framework with broad features set
logger
- OTP 21+ built-in pluggable logger module
Logger
- Elixir's built-in pluggable logger module that in recent Elixir versions also synchronises with Erlang's logger
module
systemd
- library for integrating with systemd, it provides utilities for integrating with systemd's journal
Metrics
Recommended
Other
- beam_stats - Collect detailed VM metrics and send to arbitrary, plugable backends (StatsD and Graphite backends included).
- Fluxter - InfluxDB writer for Elixir
- Statix - fast and reliable Elixir client for StatsD-compatible servers with some DogStatsD extensions (namely tags)
- vmstats - tiny Erlang app to generate information on the Erlang VM
Historical
Over the many years of Erlang and Elixir's existence many libraries for metric collection have been created. However, expectations for modern metric gathering and reporting has changed during this time. The follow libraries are still used and do their job well, but they lack features like tags that are important for adding additional dimensions to metrics, which gives the user more control over aggregation. See the Datadog article, The Power of Tagged Metrics, for more on the importance of tagging metrics.
- Elixometer - thin Elixir wrapper over Exometer
- Exometer - Erlang instrumentation package
- Folsom - expose Erlang events as metrics
metrics
- generic interface to to a different metrics systems in Erlang
Tracing
Recommended
- OpenTelemetry - The combined effort of OpenTracing and OpenCensus communities. OpenTelemetry is a CNCF project that will replace both OpenTracing and OpenCensus.
Or for vendor specific solutions see:
- AppSignal - AppSignal Elixir integration package for gathering metrics, errors, and traces
- New Relic - New Relic's Elixir agent supports metrics, errors and distributed tracing
Other Implementations
OpenCenus (ON HOLD, see OpenTelemetry) - implementation of Google's OpenCensus.io tracing and monitoring with broad range of integrations:
- Otter - OpenTracing (see OpenTelemetry) integration library for Erlang
Spandex (ON HOLD, see OpenTelemetry) - tracing library for Elixir which supports DataDog APM. Integrations:
- tracelog - logging handler that can transform structured logs into distributed tracing spans (for now supports only OpenCensus backend library)
Error logging
- Aibrakex - Elixir client for Airbrake
- Bugsnag - Elixir interface to Bugsnag API
- Rollbar - exception tracking and logging from Elixir to Rollbar
- Sentry - official Elixir SDK for Sentry.io
License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.