A tiny Erlang application that collects and exports Erlang VM metrics to configurable sinks like StatsD.
vmstats is a lightweight Erlang application that collects and exports metrics from the Erlang virtual machine to external monitoring systems like StatsD. It gathers data on memory usage, process counts, garbage collection, scheduler activity, and other runtime statistics to provide visibility into VM performance.
Erlang and Elixir developers and system administrators who need to monitor and troubleshoot the performance of Erlang VM-based applications in production or development environments.
Developers choose vmstats for its simplicity, extensibility through custom sinks, and comprehensive coverage of Erlang VM metrics without heavy dependencies, making it easy to integrate into existing monitoring workflows.
tiny Erlang app to generate information on the Erlang VM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Gathers a wide array of metrics from error logger queue length to scheduler usage, as listed in the README, providing deep visibility into Erlang VM performance without gaps.
Follows a lightweight, dependency-free philosophy allowing easy integration into diverse setups, and supports custom sinks via the `vmstats_sink` behavior for flexible metric export.
Offers tunable intervals (default 1s), customizable memory metrics via Erlang's memory/1 function, and options like base_key and sched_time, enabling tailored monitoring to specific needs.
Sticks to reliable metric gathering without bloat, as emphasized in the philosophy, making it ideal for embedding in production Erlang applications where simplicity is valued.
Lacks pre-built sinks for common systems; developers must write their own module implementing the `vmstats_sink` behavior, adding upfront development effort compared to plug-and-play tools.
The README explicitly warns against using the master branch for stability, indicating that updates may introduce breaking changes, requiring careful version management via tags.
As a niche Erlang tool, it has fewer community contributions, third-party integrations, or extensive documentation compared to larger monitoring frameworks, which might slow troubleshooting.
Runs periodic metric collection at configurable intervals, which could introduce measurable CPU and memory usage in resource-constrained environments, despite being designed as lightweight.