one hour of every log on this machine · sampled every ten minutes
The hour, at a glance
requests
3,680
in the hour
pages answered
2,219
200–299
distinct humans
93
browser-shaped
model agents, verified
2
name and address agree
index crawlers, verified
909
GPTBot, ClaudeBot, Googlebot
claimed, not verified
16
the name alone, or a scanner
installable files
0
.tar.gz, .zip, .deb, .rpm
Built by bisecting the day’s log to this hour’s byte range: 3,680 lines parsed in 0 ms of one core — about a two-thousandth of the hour it describes — then written once and never updated. micro.json beside the page holds the same numbers for a program.
the shape of the hour
Requests, ten minutes at a time
The dashed line is the mean slice (613). A spike in one slice and not the next is a crawler or a scan, not an audience: the same reader arriving once, not a hundred people arriving together.
what the hour actually returned
Answers by status
browser-shaped user agents only · the rest are counted as bots
Who asked
pages whose only purpose is to be found
The doors
the same figures as a table, so nothing is hidden in a bar
Every slice
| slice | requests | pages | 404 | 5xx | humans | agents | crawlers | claimed | installs |
|---|---|---|---|---|---|---|---|---|---|
| 08:00–08:10 | 504 | 337 | 16 | 151 | 12 | 0 | 0 | 0 | |
| 08:10–08:20 | 802 | 361 | 79 | 362 | 15 | 0 | 0 | 0 | |
| 08:20–08:30 | 765 | 389 | 3 | 373 | 22 | 0 | 0 | 0 | |
| 08:30–08:40 | 522 | 366 | 1 | 154 | 14 | 0 | 0 | 0 | |
| 08:40–08:50 | 522 | 369 | 1 | 152 | 17 | 2 | 0 | 0 | |
| 08:50–09:00 | 565 | 397 | 18 | 150 | 13 | 0 | 0 | 0 | |
| the hour | 3,680 | 2,219 | 118 | 1,342 | 93 | 2 | 909 | 16 | 0 |
the twelve most-requested paths in the hour
What was asked for
| path | requests | first seen |
|---|---|---|
/visits.php | 300 | 08:10 |
/git/auth/cubelinux/cubelinux-2/pulls | 224 | 08:20 |
/git/auth/cubelinux/cubelinux-kernel/commit/598cf272195d2… | 41 | 08:00 |
/git/auth/cubelinux/cubelinux-kernel/src/branch/cubelinux… | 34 | 08:00 |
/git/auth/cubelinux/cubelinux-kernel/rss/branch/cubelinux… | 26 | 08:30 |
/git/auth/cubelinux/cubelinux-kernel/commits/branch/cubel… | 22 | 08:20 |
/grid/video/job | 20 | 08:00 |
/ | 19 | 08:50 |
/git/auth/cubelinux/cubelinux-kernel/raw/branch/cubelinux… | 18 | 08:10 |
/spec.php | 10 | 08:10 |
/git/auth/cubelinux/cubelinux-kernel/commits/commit/ed5ff… | 10 | 08:30 |
/weekly/2026-10-28/ | 7 | 08:40 |
requests per site, including the ones that only exist to answer a scanner
Where it came from
the method, so the number can be checked rather than believed
What this hour is, and is not
A hour on this machine is not a sample of an audience. At this volume the hour is mostly machines: a scanner probing for /app/ and /api/.env, a crawler re-reading a page it read yesterday, and whatever Google decided to do. The one thing an hour does show is proportion — how much of the noise is noise, and whether any of it went near a door that exists to be read. Capture the same hour a month from now and the two pages sit side by side: that is a comparison, and this is one side of it.
Built by micro.py on the same box that serves the site; it reads /var/log/nginx/*.access.log* after the fact, so it costs the request path nothing. The page is static HTML with hand-drawn SVG: no script, no font, no request to anywhere else.