Advanced runtime tracing and debugging tool for Elixir with distributed capabilities and safety features.
Exrun is an advanced debugging and runtime tracing tool for Elixir applications, designed as an enhanced alternative to Erlang's runtime_tools. It enables developers to trace function calls across distributed systems with safety mechanisms like rate limiting to prevent performance degradation.
Elixir developers and engineers working on distributed systems who need to debug, trace, and monitor function calls in production or development environments, especially those managing multi-node Elixir or Erlang applications.
Developers choose Exrun for its macro-based tracing with natural Elixir syntax, built-in safety features like configurable rate limiting to avoid system overload, and the ability to trace functions across distributed nodes even where Exrun isn't installed, leveraging Erlang distribution.
Runtime and debugging tools for elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Elixir macros to set traces with natural syntax, including arguments and conditions, making it intuitive for developers familiar with Elixir code patterns.
Includes configurable rate limiting (default 250 messages/second) to prevent system overload, enabling safer tracing in production environments without performance degradation.
Leverages Erlang distribution to trace functions across multiple nodes, even on nodes without Exrun installed, ideal for debugging complex distributed systems.
Measures and displays function execution times in trace outputs, helping identify performance bottlenecks directly during debugging sessions.
Supports custom formatters and transport options, allowing developers to tailor trace data output to various needs like files, TCP, or custom implementations.
Key features like unsetting traces and a full CLI are not yet implemented, as noted in the roadmap, limiting dynamic tracing workflows and usability.
At version 0.1.0, the tool may be unstable with potential breaking changes, and community support or comprehensive documentation is limited.
Relies on Erlang distribution and macro knowledge, requiring additional expertise for teams not deeply familiar with the BEAM ecosystem, which can increase initial setup time.
The README is brief and directs users to inline help (e.g., `h Tracer`), which may not provide detailed guidance for advanced use cases or troubleshooting.