Skip to content
CAI
Software that uses CAICheck a score

massemanet/eper

59.4

Adequate · 23 September 2026

6.2k

lines of production code

Erlang

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an Erlang-based monitoring and diagnostics toolkit designed for observing and analyzing runtime behavior. It provides command-line utilities for tracking network, memory, and process metrics, alongside modules for parsing log files and replaying trace data. The project also includes CI configuration and release automation tools to support its development lifecycle.

Features

Add automated release script for versioning

A new shell script at bin/release.sh has been added to automate the process of incrementing the project's version number (major, minor, or patch) and generating a corresponding Git tag and changelog. This tool simplifies the release workflow by handling version updates in the source file, committing the change, and creating an annotated tag.

bin · high confidence

Add new monitoring and utility modules

Introduces several new modules to the src directory: atop.erl for visualizing allocator information, bread.erl and bread\_server.erl for parsing various file formats (XML, terms, lines, TRC) with support for compressed files, dogConsumer.erl for handling watchdog data, dtop.erl and dtopConsumer.erl for a top-like client for prf, dtop\_replay.erl for replaying TRC files, eper.app.src and eper.erl for the main application entry point and command-line interface, gen\_serv.erl and gen\_serv.hrl as a generic server behavior wrapper, getoptw.erl for command-line argument parsing, log.hrl for logging macros, logReader.erl for reading compressed log files, loggerConsumer.erl for logging prf data to files, mtop.erl for Mnesia monitoring, ntop.erl and ntopConsumer.erl for network top monitoring, prf.erl as the main PRF interface, prfConsumer.erl as an example consumer, and prfDist.erl for collecting distribution port statistics.

src · high confidence

Added dtop, ntop, and redbug shell scripts to priv/bin

Three new executable shell scripts—dtop, ntop, and redbug—have been added to the priv/bin directory. These scripts provide command-line interfaces for Erlang-based tools, supporting options for node names, cookies, network tick times, and OTP versions. The redbug script specifically handles long node names and trace patterns, while dtop and ntop manage their respective Erlang processes with similar configuration options.

priv · high confidence

Behavioural changes

Added .gitignore and .travis.yml for build and CI configuration

The repository now includes a \.gitignore\ file to exclude build artifacts and editor backups, and a \.travis.yml\ file to configure continuous integration testing across multiple Erlang/OTP versions (R16B03-1 through 21.0).

(repo-wide) · 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 47 → 59 (+12.3)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 79 → 93 (+14.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 29 → 43 (+14.4)
  • Readiness 33 → 64 (+30.9)
  • Security 100 → 67 (-33.3)
  • Event Sourcing 100 → 100 (+0.0)

Resolved (11)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Largest orphaned file (src/getoptw.erl)
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included
  • The README is thin and states the project has been parked with redbug in its own repo while the rest was not of much general interest but remains compatible for modern OTP releases; it does not link to or describe dtop/etop reimplementations. (README.md)
  • TooManyMethods: getoptw (src/getoptw.erl)
  • TooManyMethods: watchdog (src/watchdog.erl)
  • complexity unreadable for .erl, .hrl — churn × complexity hotspots could not be measured
  • dormant codebase — no living knowledge left to concentrate

New (12)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • Duplicated block (6 lines × 2) (src/loggerConsumer.erl)
  • Duplicated block (7 lines × 2) (src/loggerConsumer.erl)
  • Duplicated block (9 lines × 2) (src/getoptw.erl)
  • No SBOM
  • No artifact signing
  • No build provenance
  • atop.getallocdata (cognitive 19) (src/atop.erl)
  • redbug.mk_outer (cognitive 16) (src/redbug.erl)
  • redbug.mk_outer (cyclomatic 19) (src/redbug.erl)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

massemanet/eper 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 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 17b0f97ea8287b72e8ebbe7132214db182ff1a1d — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.