---
title: "Dyno"
description: "The site on the rollers: worker bundle, pages, and client assets weighed nightly, charted over time."
path: "/garage/dyno"
section: "garage"
kind: "content"
source: "https://aadhar.sh/garage/dyno"
---

> Site index: https://aadhar.sh/llms.txt
> Section index: https://aadhar.sh/garage/llms.txt
> This is the Markdown twin of a page on aadhar.sh. The HTML at the source
> URL below is the original, and is hand-written and unminified on purpose.

# Dyno

The site on the rollers. One row a night records what this site weighs on the
wire: the Worker bundle, the shared client assets, and the pages, each as the
compressed bytes a browser receives. The page charts that series so a slow
drift shows up as a slope rather than as a number nobody re-reads.

**This twin describes the chart rather than mirroring it, because the chart is
drawn from data at request time.** The page itself is built once per deploy,
and the chart and the table of recent pulls arrive after load from
`/garage/dyno/pulls.html`, an HTML fragment rendered from the series. The data
is the useful part for a machine and it is served as JSON:

- `/garage/dyno.json`: `{ generated, source, count, points }`. `points` is the
  whole series, oldest first. A row carries `ts` (the date), `sha` (the commit
  measured) and `worker_gzip` (the Worker bundle in gzip bytes, the number
  wrangler reports). Rows taken by the nightly job also carry `worker_modules`,
  `assets_br` (the shared client assets in brotli bytes, summed) with `assets`
  (the same, per file), `pages_br` and `pages_n` (the documents in brotli bytes,
  summed, and how many), `dcz_n` and `dcz_b` (how many pages ship a
  shared-dictionary delta and what those deltas weigh together), and `dict_br`
  (the page-family dictionary itself in brotli bytes, or null before it
  existed). The earliest rows come from hand notes rather than the job, carry
  only the Worker figure, and say so in `source` and `note`.

## What a nightly series sees that the per-PR diff can't

Every pull request touching served code gets a wire-size diff against its merge
base, commented on the PR and gating nothing. That catches the STEP a change
makes. It structurally cannot see DRIFT, which is the failure this site actually
had. A byte budget sat breached for weeks while every check printed green,
because each check compared a number against a constant somebody had typed, and
the constant had rotted. A series has no constant. Each night's row is compared
with the row before it, and a slope is visible whether or not anyone re-baselined.

## Where the rows live

On a machine-owned branch of the site's repository, `perf-history`, as one JSON
line per night appended by a scheduled job. It's a branch rather than a
database because the main branch takes no pushes from any workflow, and a human
reviewer gates the only database credential for releases. A branch outside both
rules is the one place a nightly job can write without weakening either. The
page only ever reads it, caches it for six hours, and keeps the last good copy
when the read fails. The chart's value is the part of the series that already
happened.

`/perf` and `/perf.json` are older names for the same two URLs and redirect here.

Source: https://aadhar.sh/garage/dyno
