Traffic tab
Live request stream, geographic map, and browser vs bot breakdown for a single environment.
The Traffic tab streams live HTTP request data into the Hub — what is hitting the storefront right now, where it is coming from, and how it is classified.
What's shown
The tab has two main areas:
Geographic map and origins sidebar
A world map plots active request origins on a grid. Each point represents one or more requests in the current 15-minute window. A sidebar to the right of the map lists the top origin locations by request count.
Request table
A filterable, paginated table of individual requests received in the last 15 minutes. Columns include timestamp, path, status code, remote IP, country, and classification.
Filtering
Three controls sit above the request table:
- Type tabs switch between All, Browser, and Bot to filter by request classification
- Status filter narrow to a specific HTTP status group (2xx, 3xx, 4xx, 5xx)
- Variant filters toggle visibility of static assets, internal requests, whitelisted IPs, blacklisted IPs, and challenged requests
Refresh rate
The display table updates on a configurable interval — 5, 10, or 15 seconds. The underlying WebSocket accumulates requests continuously in the background; the table just shows a snapshot refreshed at the chosen cadence. Older entries (beyond 15 minutes) are pruned automatically.
Where the data comes from
Traffic data is captured by the OpenResty (nginx) layer on the VM and streamed to the Hub dashboard in real time. The same pipeline feeds the latency figure on the Overview tab.
When traffic looks wrong
- Surge of 5xx responses → check the Logs tab for stack traces in
var/log/exception.log - Surge of bot traffic → behavioral blocking is handled automatically by the security layer at the edge
- Latency climb without a request surge → check Containers tab for service health (MariaDB, Redis, PHP)
- Requests not appearing at all → the Live badge in the table header turns off when the WebSocket is disconnected; the panel reconnects automatically