An Erlang-based metrics system for collecting realtime metrics from Erlang applications and publishing them via APIs and plugins.
Folsom is an Erlang-based metrics system designed to collect realtime metrics from Erlang applications and publish them via Erlang APIs and output plugins. It provides various metric types like counters, gauges, histograms, and meters for monitoring application performance and behavior. Unlike persistent stores, Folsom focuses on real-time data collection and exposure.
Erlang developers and system administrators who need to monitor application performance, track metrics, and implement observability in Erlang-based systems.
Developers choose Folsom for its lightweight, non-persistent approach to metrics collection, extensive statistical analysis capabilities, and seamless integration with Erlang VM statistics, making it a robust tool for real-time monitoring in Erlang ecosystems.
Expose Erlang Events and Metrics
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports counters, gauges, histograms, histories, meters, and spirals, enabling diverse monitoring scenarios as detailed in the README's API examples.
Histograms provide mean, min, max, kurtosis, and percentiles with configurable sampling methods like uniform and exdec, allowing precise performance insights.
Includes built-in functions to expose Erlang VM statistics such as memory usage and process info, facilitating deep system monitoring without external tools.
Metrics can be tagged and grouped for organized querying by type, making it easier to manage related metrics in complex applications, as shown in the tagging API.
Folsom explicitly states it is not a persistent store, so all metrics are lost on restart, limiting use cases requiring historical data analysis.
Setting up histograms with sample types like exdec or slide_uniform requires understanding specific parameters and trade-offs, which can be daunting for quick setups.
Designed primarily for Erlang, it lacks native support for other languages or tools, necessitating custom plugins for integration in polyglot environments.