Observability & Debugging on the BEAM



Welcome to the one-day observability and debugging tutorial for Erlang and Elixir on the BEAM! In this tutorial, we’ll dive into the world of observability, focusing on alarms, logs, metrics, mocking frameworks, and more. In the morning session, we’ll start by exploring the importance of observability in distributed systems and discussing where and how to set up alarms to monitor critical events. We’ll then move on to logging best practices, including structured logging and proper use of log aggregation tools. The afternoon session will cover metrics and how to collect and visualize them using tools like Prometheus and Grafana. Next, we’ll learn about distributed tracing and how it can help identify bottlenecks and latency issues in our systems. Lastly, we’ll explore mock testing techniques to isolate dependencies and improve the testability of our code. By the end of the day, you’ll have a solid understanding of observability concepts and practical tools to enhance the reliability and properly measure the performance of your Erlang and Elixir applications on the BEAM.

Training objectives:

  1. Understand the importance of observability in the BEAM
  2. Understand how to use counters, logs and alarms for pre-emptive support
  3. Understand how distributed tracing tools on the BEAM work

Target audience: Developers and architects with Erlang and Elixir experience who want to further their knowledge in designing systems with high availability and reliability.

Training prerequisites: Install the latest version of Erlang and Elixir. We will provide examples which we can use to add monitoring, test and debug.

Experience level:
Intermediate Erlang and Elixir Developers