Skip to content
CAI
Software that uses CAICheck a score

beam-telemetry/telemetry_metrics

58.0

Adequate · 18 September 2026

994

lines of production code

Elixir

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Telemetry.Metrics is an Elixir library that defines a standardized schema for five metric types—counter, sum, last value, summary, and distribution—along with options for unit conversion and filtering. It provides a ConsoleReporter to print these metrics to the terminal for debugging and discovery, supported by comprehensive validation and test coverage. The system is designed to integrate with the Telemetry ecosystem, allowing users to structure and observe application telemetry data.

Features

Add console reporter and metric specification structs

This change introduces a new ConsoleReporter that prints telemetry events and metric details to the terminal, aiding in debugging and discovery of available measurements and metadata. It also adds the underlying metric specification structs (Counter, Distribution, LastValue, Sum, Summary) that define the structure for these metrics, enabling the reporter to format and display them correctly.

_lib/telemetry\metrics · high confidence

Behavioural changes

Comprehensive documentation overhaul for metric definitions and unit conversions

The module documentation for Telemetry.Metrics has been significantly expanded to provide a complete guide for users. It now explicitly lists and describes all five metric types (counter, sum, last\_value, summary, distribution) and details common options such as :event\_name, :measurement, :tags, :keep, :drop, and :reporter\_options. A new section explains how to convert units for time and byte measurements using tuples in the :unit option, and includes examples for integrating with VM metrics via :telemetry\_poller.

lib · high confidence

Removed legacy config file

The legacy \config/config.exs\ file has been removed from the project. This file previously utilized the deprecated \Mix.Config\ module, indicating a move away from older configuration patterns in the application setup.

config · high confidence

Test coverage

Added tests for ConsoleReporter and metric specification validation

Added comprehensive test coverage for the new ConsoleReporter, verifying its ability to print metrics per event, handle missing or invalid measurements, apply tag value transformations, and filter events based on metadata and measurement values. Additionally, extended the metric specification tests to validate that all metric types correctly raise errors for invalid names, event names, tag values, tags, descriptions, units, and reporter options, while also confirming correct behavior for overridden fields, normalized names, and keep/drop filter functions.

test · high confidence

Dependencies

Upgrade to Telemetry 1.0 and Elixir 1.14 support

The project now requires Elixir 1.14 or later and upgrades the core Telemetry dependency to support versions 0.4 and 1.0, enabling compatibility with the latest Telemetry releases. Additionally, the documentation tooling has been updated to use ExDoc 0.20, which brings in modernized dependencies like EarmarkParser and Makeup for improved documentation generation.

(dependencies) · high confidence

Housekeeping

Initial project scaffolding and documentation updates

This change establishes the foundational structure of the Telemetry.Metrics library by adding the Apache 2.0 license, copyright notice, and a comprehensive changelog. It also configures Codecov for coverage reporting and updates the README to include CI badges, a detailed description of the library's purpose, and a list of available reporters, while adjusting the Elixir formatter configuration to include the new \.formatter.exs\ file in its inputs.

(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

Baseline

  • First survey — no prior run to compare against. CAI 58.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 39
  • Readiness 67
  • Security 100

Changes since last survey

  • 120 commits — 109 feature/other, 11 fixes

By area

  • (root) — 48 commits
  • lib/telemetry_metrics.ex — 31 commits
  • lib/telemetry_metrics — 16 commits
  • .circleci/config.yml — 10 commits
  • docs/writing_reporters.md — 6 commits
  • .github/workflows — 4 commits
  • test/console_reporter_test.exs — 2 commits
  • config/config.exs — 1 commit
  • docs/overview.md — 1 commit
  • test/telemetry_metrics_test.exs — 1 commit

Notable commits

  • fix: Fix Elixir 1.20 unused require warnings (#130)
  • fix: Fix dialyzer error on valid calls to distribution/2 with :buckets
  • fix: Fix error message on wrong conversion (#51)
  • fix: Fix incompatibility Elixir/Erlang OTP error in GitHub CI (#104)
  • fix: Fix link, closes #112
  • fix: Fix syntax error in CircleCI config
  • fix: Fix tag example with duration instead of count (#101)
  • fix: Fix telemetry metrics docs for counter
  • fix: Fix the main page of the docs
  • fix: Fix typespec for drop option (#114)
  • fix: Typo fix in writing reporters instructions (#44)
  • change: Add 1-arity versions of counter, sum and last_value (#8)
  • change: Add Codecov badge to the README (#17)
  • change: Add a console reporter (#37)
  • change: Add a summary metric type (#32)
  • change: Add distribution metric specification (#6)
  • change: Add dummy CircleCI config to enable builds
  • change: Add missing my_app.repo summary entry (#71)
  • change: Add support for tags function (#128)
  • change: Align documentation/tests with typespecs for :keep and :drop (#121)
  • …and 100 more

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

Survey your own repository

beam-telemetry/telemetry_metrics 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 18 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 79688f134577eb37811a3f06cf16f50b24c1fffd — 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-5d04157a340d.