Skip to content
CAI
Software that uses CAICheck a score

folsom-project/folsom

35.5

Weak · 2 October 2026

3.1k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Folsom is an Erlang metrics library that provides a comprehensive API for collecting and querying system and application data. It supports various metric types, including counters, gauges, histograms with multiple sampling strategies, and meters, while leveraging ETS for efficient storage and the Bear library for statistical calculations. The system allows for metric tagging and configuration via command line or files, replacing the previous emetrics implementation with a more flexible and robust architecture.

Features

Initial release of folsom metrics system with Apache 2.0 license

This entry introduces the folsom Erlang metrics library, providing APIs for counters, gauges, histograms (with uniform, exdec, slide, and slide\_uniform sample types), histories, meters, and meter readers, along with Erlang VM statistics collection. The project is now licensed under Apache 2.0, uses rebar3 for building (with rebar2 fallback), and depends on the bear library for statistical functions. Configuration allows starting metrics at startup via command line or config files, and supports tagging metrics for grouped queries.

(repo-wide) · high confidence

Initial release of the Folsom metrics system

This change introduces the Folsom Erlang metrics library (version 1.1.1), providing a comprehensive set of metric types including counters, gauges, histograms, history logs, meters, meter readers, spirals, and duration trackers. The system relies on the 'bear' library for statistical calculations and uses ETS tables for efficient data storage. It includes an exponential weighted moving average (EWMA) implementation for rate calculations and a dedicated timer server to manage meter tick intervals, exposing a unified API for creating, tagging, and querying metrics.

src · high confidence

Behavioural changes

Introduction of Folsom metrics library with new sample types and system info

The project has switched from 'emetrics' to the Folsom metrics library, introducing a new set of Erlang record definitions and macros in the include file. This change adds support for several new histogram sample types, including 'spiral', 'slide', 'slide\_uniform', 'exdec', 'none', and 'slide\_sorted', allowing for more flexible metric collection strategies. It also expands the available system information metrics to include detailed process and socket options, and updates the random number generation to use the modern 'rand' module with fallback support for older OTP versions.

include · high confidence

Removal of static dispatch configuration file

The static dispatch configuration file (priv/dispatch.conf) has been removed. This file previously defined a mapping for the 'vm' resource path to the emetrics\_vm\_resource handler. Its removal indicates that the application no longer uses this static configuration approach for routing or resource definition, likely relying on dynamic registration or a different dispatch mechanism instead.

priv · high confidence

Test coverage

Initial test coverage for Folsom metrics and sliding window samples

Added comprehensive EUnit and QuickCheck tests for the Folsom metrics library, including validation of CPU topology parsing, metric creation/deletion/tagging, histogram sliding window resizing, and uniform sampling behavior. The test suite also includes data fixtures for various CPU architectures and dependencies like mochijson2 and mochinum to ensure robust verification of metric collection and sampling logic.

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 37 → 36 (-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 100 → 100 (+0.0)
  • Maturity 50 → 50 (+0.1)
  • Readiness 50 → 41 (-8.3)
  • Security 67 → 80 (+13.3)
  • Event-Driven 10 → 10 (+0.0)
  • Event Sourcing 100 → 100 (+0.0)

Resolved (4)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no architecture or design documentation (README.md)
  • Hotspot: src/folsom_vm_metrics.erl (src/folsom_vm_metrics.erl)
  • Off-boarding risk: anonymized user #1

New (4)

  • Documentation: no project overview (README.md)
  • Documentation: no usage examples (README.md)
  • Floating source dependency: eqwalizer_support
  • Off-boarding risk: anonymized user #1

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

Survey your own repository

folsom-project/folsom 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 12b068dfee9507233cf4b438a1d2f486f9047295 — 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.