Skip to content
CAI
Software that uses CAICheck a score

lpgauth/statsderl

59.2

Adequate · 2 October 2026

444

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a lightweight Erlang library for sending metrics over UDP, built on the statsderl project. It provides a consistent API for recording counters, gauges, and timings while handling asynchronous packet dispatch, sampling, and telemetry events. The implementation relies on the shackle library for efficient UDP communication and includes comprehensive configuration and test coverage.

Features

Introduce statsderl configuration and type definitions

Added the \statsderl.hrl\ header file, which defines the core type specifications (such as \base\_key\, \key\, \operation\, and \pool\_size\) and configuration defaults for the statsderl application. This includes environment variable mappings for \base\_key\, \hostname\, and \port\, as well as default values for the backlog size (4096), pool size (4), and port (8125), establishing the foundational configuration structure for the library.

include · high confidence

Behavioural changes

8 commits (0 fixes) modifying bin

A change to existing behaviour in bin — 8 commits, 1 file.

bin · medium confidence · unverified

Refactored statsderl to use shackle for UDP communication

The library has been restructured to replace the previous gen\_server-based implementation with a shackle-based architecture. This change introduces new modules (statsderl\_client, statsderl\_protocol, statsderl\_sample, statsderl\_transform, statsderl\_utils) to handle UDP packet encoding, sampling logic, and telemetry events. The public API remains consistent (counter, gauge, timing, etc.), but the underlying mechanism now leverages shackle for asynchronous UDP sending, allowing for configurable pool sizes, backlog sizes, and hostname/IP address resolution. The application startup now initializes a shackle pool instead of a simple gen\_server.

src · high confidence

statsderl 0.7.3: Telemetry events and dependency upgrades

This release adds two new telemetry events, \[statsderl, sample, sent\] and \[statsderl, sample, dropped\], emitted at the sample-rate gate to allow observers to track metric dispatch and suppression without instrumenting internal shackle logic. It also upgrades the knot dependency to 0.1.2, meck to 1.2.0, and shackle to 0.7.3, while removing the fprofx profile tooling.

(repo-wide) · high confidence

Test coverage

Added EUnit test suites for statsderl core, transform, and utilities

Added new EUnit test files (\statsderl\_tests.erl\, \statsderl\_transform\_tests.erl\, \statsderl\_utils\_tests.erl\) to verify the library's functionality. These tests cover base key handling, metric operations (counters, gauges, increments, decrements, timings), sampling rate logic, and telemetry event emission (sent/dropped). The suite also validates the \statsderl\_transform\ parse transform behavior and utility functions like \base\_key\ generation using mocked dependencies.

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 59 → 59 (-0.1)
  • 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 39 → 39 (+0.0)
  • Readiness 78 → 75 (-2.7)
  • Security 92 → 96 (+4.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no licence statement (README.md)

New (2)

  • Documentation: no project overview (README.md)
  • Outdated: shackle

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

Survey your own repository

lpgauth/statsderl 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 47dc097722b805bb33605a19cc53e101bb71714e — 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.