one hour of every log on this machine · sampled every ten minutes
The hour, at a glance
requests
3,522
in the hour
pages answered
2,227
200–299
distinct humans
65
browser-shaped
model agents, verified
0
name and address agree
index crawlers, verified
902
GPTBot, ClaudeBot, Googlebot
claimed, not verified
10
the name alone, or a scanner
installable files
5
.tar.gz, .zip, .deb, .rpm
Built by bisecting the day’s log to this hour’s byte range: 3,522 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 (587). 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 |
|---|---|---|---|---|---|---|---|---|---|
| 07:00–07:10 | 289 | 117 | 14 | 157 | 9 | 0 | 0 | 0 | |
| 07:10–07:20 | 506 | 334 | 17 | 155 | 8 | 0 | 0 | 0 | |
| 07:20–07:30 | 990 | 782 | 29 | 175 | 16 | 0 | 1 | 5 | |
| 07:30–07:40 | 490 | 335 | 5 | 150 | 10 | 0 | 0 | 0 | |
| 07:40–07:50 | 484 | 329 | 5 | 150 | 8 | 0 | 0 | 0 | |
| 07:50–08:00 | 763 | 330 | 68 | 365 | 14 | 0 | 0 | 0 | |
| the hour | 3,522 | 2,227 | 138 | 1,152 | 65 | 0 | 902 | 10 | 5 |
the twelve most-requested paths in the hour
What was asked for
| path | requests | first seen |
|---|---|---|
/visits.php | 300 | 07:20 |
/git/auth/cubelinux/cubelinux-kernel/src/branch/cubelinux… | 41 | 07:10 |
/git/auth/cubelinux/cubelinux-kernel/commit/598cf272195d2… | 35 | 07:00 |
/git/auth/cubelinux/cubelinux-kernel/raw/commit/88ce1bf2b… | 30 | 07:40 |
/git/auth/cubelinux/cubelinux-kernel/commits/branch/cubel… | 25 | 07:30 |
/ | 23 | 07:20 |
/grid/video/job | 20 | 07:00 |
/git/auth/cubelinux/cubelinux-kernel/rss/branch/cubelinux… | 19 | 07:20 |
/git/auth/cubelinux/cubelinux-kernel/raw/branch/cubelinux… | 18 | 07:20 |
/git/auth/cubelinux/cubelinux-kernel/blame/commit/88ce1bf… | 14 | 07:00 |
/robots.txt | 6 | 07:10 |
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.