01
Request shape
Host, method, path with its query string, status and response bytes.
log parsing
The parser keeps the useful parts of raw logs and adds the structure the dashboard needs: pages, sources, countries, devices and a bot flag.
san francisco signal
Each request becomes one event with a fixed schema.
01
Host, method, path with its query string, status and response bytes.
02
User agent, bot flag, device, browser, OS, referrer and country.
03
nginx and Apache combined, nginx JSON, Caddy JSON, Traefik text and JSON, and ingress-nginx, also inside Docker and Kubernetes container logs.
route map
Each step keeps the request trail visible, like city lights through fog.
Set the format on each source. Lines that don't parse are counted and rejected, not guessed.
Map raw values to a stable analytics schema.
Add country, bot flag, device, browser and OS. The client IP is used for the lookups and the visitor hash, then dropped.