XTrace - A web-based GUI for Extrace / recon_trace (making BEAM tracing easy, visual, and interactive)

The new version of XTrace has been released. Happy debugging!

Features

  • Real-time trace streaming — Trace messages rendered live in the browser via Phoenix LiveView + Svelte
  • Local & remote tracing — Trace the local node or any connected remote BEAM node
  • Node management — Setup Erlang distribution, connect/disconnect nodes, auto-reconnect on failure
  • Flexible trace specs — Supports {Mod, :fun, args} tuples, &Mod.fun/arity capture syntax, and match specs
  • Rate limiting — Configurable max traces per time window to prevent overwhelming production systems
  • Scope & PID filtering — Trace :local or :global scope, filter by :all, :new, :existing, or specific PIDs
  • Settings persistence — Save, load, import, and export trace configurations
  • Dark mode — Toggle between light and dark themes
  • Cross-platform CLI — Single-binary distribution for macOS (x86_64 / aarch64), Linux (x86_64 / aarch64), and Windows via Burrito
  • Desktop app — Also available as a native desktop application

Trace Video

In this video demonstration, the **XTrace Web GUI Tool** is mainly used to perform a series of operations including distributed tracing and function monitoring.

First, the node environment is set up and configured to complete node initialization; the tool is then connected to the server node running on the Phoenix framework.

Next, the target functions to be monitored and traced are specified in the interface. After that, requests are sent to the server via curl to trigger business logic and related events, enabling the tool to collect data and monitor runtime status in real time.

Finally, the monitoring process is stopped, and the captured invocation data, execution traces, and runtime information are analyzed and reviewed.

3 Likes