Skip to content
CAI
Software that uses CAICheck a score

chrzaszcz/erlang_doctor

61.9

Adequate · 2 October 2026

1.2k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.