An Erlang client library for the Prometheus monitoring system, providing metrics collection and exposition.
Prometheus.erl is a native Erlang client library for the Prometheus.io monitoring system and time series database. It enables Erlang and Elixir applications to expose internal metrics in the Prometheus format, facilitating observability and performance monitoring. The library supports all core Prometheus metric types and integrates with various Erlang/OTP components and popular web frameworks.
Erlang and Elixir developers building applications that require observability and performance monitoring, particularly those already using or planning to use the Prometheus ecosystem for metrics collection and visualization.
Developers choose Prometheus.erl because it provides a clean, idiomatic Erlang API that follows Prometheus instrumentation best practices while maintaining full compatibility with the broader Prometheus ecosystem. It offers built-in collectors for the Erlang VM and ready-to-use integrations with popular frameworks like Cowboy, Phoenix, and Ecto, reducing the effort needed to instrument applications.
Prometheus.io client in Erlang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all core Prometheus metric types including counters, gauges, histograms, summaries, and booleans, as shown in the detailed example session with metrics like http_requests_total and pool_size.
Includes native collectors for Erlang VM memory, statistics, system info, and Mnesia, providing out-of-the-box monitoring for runtime performance without custom code.
Offers ready-to-use instrumenters for popular frameworks like Cowboy, Phoenix, Ecto, and Plugs, simplifying metric collection in web and database layers as listed in the Integrations section.
Supports both text and protobuf formats for metric scraping via modules like prometheus_text_format, ensuring flexibility and compatibility with various Prometheus server setups.
Key features like HTTP exporters and framework instrumenters are split into separate Hex packages (e.g., prometheus_cowboy, prometheus_phoenix), complicating installation, updates, and dependency management.
The library focuses solely on metrics export; creating dashboards requires integrating external tools like Grafana, adding to system complexity and setup time, as hinted by the linked beam-dashboards.
Advanced setups with custom collectors, instrumenters, and app-wide metrics involve manual configuration in the Erlang app environment, which can be error-prone and daunting for new users.