chrzaszcz/erlang_doctor
61.9
Adequate · 2 October 2026
1.2k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
Erlang Doctor is a lightweight tracing, debugging, and profiling tool for Erlang systems that captures execution data into an ETS table with minimal performance overhead. It provides APIs for filtering traces, analyzing call trees, and generating tracebacks to help developers inspect module calls, PIDs, and message events. The system includes a supervision tree and a core tracing engine, supported by a comprehensive test suite to ensure reliability.
Features
Initial release of Erlang Doctor tracing and debugging tool
This change introduces the initial version of Erlang Doctor, a lightweight tool for tracing, debugging, and profiling Erlang systems. It collects traces into an ETS table with minimal performance impact and provides APIs for data analysis, including selecting and filtering traces. The release includes the core \tr\ module, application configuration via \rebar.config\, Apache 2.0 licensing, and comprehensive documentation in the README.
(repo-wide) · high confidence
Initial release of Erlang Doctor tracing utility
Introduces the erlang\_doctor application (version 1.0.0), a lightweight tracing, debugging, and profiling utility for Erlang. The package includes a supervision tree (erlang\_doctor\_sup) and a gen\_server-based core module (tr) that manages trace data in an ETS table. It provides APIs for capturing traces (trace\_app, trace/2), analyzing call trees and tracebacks (traceback, range, top\_call\_trees), and querying trace data (select, filter). The utility supports tracing specific modules, PIDs, and message events, with options to limit trace counts and call depths.
src · high confidence
New tracing record definitions in include/tr.hrl
The include/tr.hrl file has been added, introducing the \#tr and \#node records. The \#tr record defines the structure for tracing events, including fields for index, pid, event type (call, return, exception, send, recv), MFA (with a default of no\_mfa), data, timestamp, and info (with a default of no\_info). The \#node record defines the structure for representing call trees, including module, function, args, children, and result.
include · high confidence
Test coverage
Initial test suite for the tracing module
Added the \tr\_SUITE\ Common Test suite and \tr\_helper\ utility module to verify the behavior of the \tr\ tracing application. The tests cover core functionality including starting and stopping the tracer, limiting trace counts, handling duplicate tracing requests, and filtering traces by specific PIDs. It also validates range and traceback analysis features, utility functions like \contains\ and \match\, and call statistics aggregation, ensuring the tracing engine correctly captures calls, returns, and messages.
test · 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 61 → 62 (+1.1)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 50 → 50 (+0.0)
- Readiness 60 → 64 (+4.1)
- Security 92 → 92 (+0.0)
Resolved (4)
- Coverage not measured — no coverage collector is wired up
- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
chrzaszcz/erlang_doctor 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 c62f001271b0e7086aed02808dbd274430fe1e92 — 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.