Request metrics already bucket bots (is_bot() → browser/os/device = bot).
Unique-visitor counters do not:
dashboard_unique_visitors_total
dashboard_unique_visitors_by_endpoint_total
- Add a coarse
client_kind=bot|human (or equivalent) on those counters. Reuse is_bot(). Same de-dup (hash + daily salt). No raw IP/UA in labels.
- Update Grafana,
PRIVACY.md, docs/monitoring.md, tests (where necessary).
Request metrics already bucket bots (
is_bot()→browser/os/device=bot).Unique-visitor counters do not:
dashboard_unique_visitors_totaldashboard_unique_visitors_by_endpoint_totalclient_kind=bot|human(or equivalent) on those counters. Reuseis_bot(). Same de-dup (hash + daily salt). No raw IP/UA in labels.PRIVACY.md,docs/monitoring.md, tests (where necessary).