beam-telemetry/telemetry_poller
59.6
Adequate · 2 October 2026
662
lines of production code
Erlang
with Elixir
2
measurements over time
What this system is
This system is a telemetry polling library that periodically gathers and publishes VM-level metrics as Telemetry events. It provides built-in measurements for memory usage, run queue lengths, system counts, and process information. The project has been fully rewritten in Erlang, replacing its previous Elixir implementation and legacy configuration mechanisms.
Features
Add VM telemetry examples for memory, run queues, and system counts
New example modules (TelemetryPollerVM in Elixir and Erlang) demonstrate how to attach telemetry handlers for VM-level metrics. These examples show how to capture and display measurements for memory usage, total run queue lengths, and system counts (including atom, port, and process limits), providing reference implementations for monitoring these specific VM statistics.
examples · high confidence
Removals
Removal of Telemetry.Sampler module
The Telemetry.Sampler module, which previously allowed users to periodically gather measurements and publish them as Telemetry events, has been removed from the library.
lib · high confidence
Behavioural changes
Library rewritten in Erlang with new measurement API and OTP 24 requirement
The library has been converted from Elixir to Erlang, changing the module access from \Telemetry.Poller\ to \telemetry\_poller\. The configuration API has changed: the previous \vm\_measurements\ and \measurements\ keys are now unified into a single \measurements\ key. Several specific VM memory measurements (e.g., \:total\_memory\, \:atom\_memory\) were removed in favor of a single \:memory\ measurement that returns all values from \erlang:memory/0\. New measurements include \:process\_info\ and \:system\_counts\ (which reports process, atom, and port counts and limits). The library now requires Erlang/OTP 24+ and Telemetry \~\> 1.0.
(repo-wide) · high confidence
Removal of legacy Mix.Config configuration file
The \config/config.exs\ file, which previously utilized the deprecated \Mix.Config\ module, has been removed from the project. This change eliminates the legacy configuration mechanism, likely as part of a migration to a newer configuration system or to clean up obsolete files.
config · high confidence
telemetry\_poller rewritten in Erlang with new built-in measurements
The telemetry\_poller library has been converted from Elixir to Erlang, introducing a new Erlang API (telemetry\_poller:start\_link/1) alongside the existing Elixir interface. This release adds built-in support for measuring persistent\_term and system\_counts (including atom, port, and process limits) alongside the existing memory and run queue metrics. The default poller is now configurable via the application environment and can be disabled by setting the 'default' key to false.
src · high confidence
Test coverage
Added Common Test suite for telemetry\_poller and removed legacy Elixir tests
The project has migrated its test suite from Elixir/ExUnit to Erlang/Common Test. This change adds a comprehensive Common Test suite (\telemetry\_poller\_SUITE.erl\) that validates the \telemetry\_poller\ application's behavior, including configuration options (name, global name, period, init\_delay), error handling for invalid inputs, listing measurements, and the dispatching of specific built-in measurements like \memory\, \persistent\_term\, \system\_counts\, \total\_run\_queue\_lengths\, and \process\_info\. It also introduces support modules (\test\_handler.erl\ and \test\_measure.erl\) to facilitate these tests. Concurrently, legacy Elixir test files (\telemetry\_sampler\_test.exs\ and \test\_helper.exs\) have been removed.
test · high confidence
Dependencies
Removed Elixir dependency manifest and lockfile
The project's Elixir build configuration has been removed, specifically the \mix.exs\ file and the \mix.lock\ lockfile. This eliminates the dependency on the \telemetry\ library (version 0.1.0) and the Elixir runtime requirements defined in the previous project structure.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 59 → 60 (+0.3)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 38 → 38 (+0.0)
- Readiness 78 → 80 (+2.2)
- Security 100 → 100 (+0.0)
Resolved (2)
- Coverage not measured — no coverage collector is wired up
- Documentation: no usage examples (README.md)
New (1)
- Outdated: telemetry
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
beam-telemetry/telemetry_poller was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f93559cf54f06ea8e88d1ec35eef186191edd390 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.