rud.is /git/* traffic observatory

Every request Caddy answered under /git/, grouped by caller, with the days the rules changed drawn on the charts. The question: who reads these archives, and did the rule changes matter?

Data through · requests · addresses · user agents · log: ~/Data/git-logs.csv

Requests per day, stacked by class

Each band is one class of caller. Dashed lines mark rule changes and incidents from data/events.csv.

days, requests. The warm bands on the left are named AI crawlers, which the 2026-09-19 abort rule cut off. The red band is the rotator that replaced them as the largest single load.

What the server did with them

Served (200) against aborted (status 0, the value Caddy writes when abort closes a connection). Dashed lines mark the rule changes.

Aborts follow policy, not load. They start on 2026-09-19 with the named-crawler block, rise on 2026-09-24 with Applebot, and rise again on 2026-09-26 when the repaired matcher and the wider address list went live.

Change points

Each row compares the three-day mean before a day with the three-day mean after it. Zero-filled days mean a class that stops still registers. Consecutive flags collapse into one episode.

The detector lives in changepoints() in src/components/charts.js. It uses a ratio of window means with +1 smoothing, flags 2x or 0.5x, and needs 20 requests per window.

Behaviour per class

The table that separates a fleet from a reader. It reports requests per address, the share of addresses seen once, and the share seen on three or more days.

Read the table top to bottom. Named crawlers hide in a few addresses with thousands of requests each. The rotator appears as tens of thousands of addresses at about one request each. The browser class mixes the two: part of it is the rotator with an accurate version string, which the new actors page separates, and the rest is the only traffic on this endpoint that looks like a person.

Read methods and limits for how each figure is made and where the method stops.