An Erlang instrumentation package for easy and efficient monitoring of system performance metrics.
Exometer is an Erlang instrumentation package that provides a framework for monitoring system performance by creating, updating, and exporting metrics. It solves the problem of efficiently instrumenting Erlang code to gather crucial data on system behavior and export it to external monitoring systems like Graphite or OpenTSDB.
Erlang developers and system administrators who need to monitor the performance and health of distributed Erlang applications, especially those requiring integration with existing monitoring infrastructure.
Developers choose Exometer for its flexibility in defining custom metrics, its built-in support for various reporters, and its efficient design that minimizes overhead while providing comprehensive instrumentation capabilities for Erlang systems.
Basic measurement objects and probe behavior
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 a wide range of built-in types like counters, gauges, histograms, and spirals, with the ability to create custom entries and probes for specialized monitoring needs, as detailed in the built-in entries section.
Includes native reporters for Graphite, OpenTSDB, AMQP, and SNMP, enabling seamless data export to external monitoring systems without additional coding, as shown in the built-in reporters documentation.
Allows metrics to be created, updated, and subscribed to at runtime via API calls like exometer:new() and exometer_report:subscribe(), facilitating adaptive monitoring without system restarts.
Reduces load on probes with configurable cache lifetimes, improving efficiency for frequent metric reads, as explained in the caching mechanism section.
Requires manual handling of optional packages via EXOMETER_PACKAGES environment variables and conditional compilation, adding setup overhead and potential compatibility headaches.
The project was split into exometer_core and separate reporter applications, with the last monolithic version from 2015, indicating potential maintenance issues and learning curve for new users.
Demands deep understanding of Erlang/OTP and detailed app.config setups for static subscriptions and reporters, making initial adoption time-consuming.