Dashboard/Analytics

Analytics

Analytics provides traffic metrics, latency data, and per-route request history.

What it does

ProxyOS records traffic metrics from Caddy's access log into the traffic_metrics and access_log tables. Metrics are aggregated into time buckets and displayed on the route detail page and the global analytics dashboard.

Recorded per request:

  • HTTP method, path, status code
  • Response latency (ms)
  • Bytes out
  • Client IP, user agent
  • Route ID

Aggregated per bucket:

  • Total requests, bytes, errors
  • Status code breakdown (2xx, 3xx, 4xx, 5xx)
  • Latency sum (used to calculate averages)

When to use it

Analytics are always-on for all routes. Use the analytics views to:

  • Monitor traffic volume and error rates over time
  • Identify slow requests (p95 latency)
  • Debug problems by reviewing recent requests
  • Track SLO compliance (p95 and p99 targets per route)

How to configure

Analytics requires no configuration. The access log path is /data/proxyos/access.log (set by PROXYOS_ACCESS_LOG in the Dockerfile).

Slow request threshold: Set a per-route threshold in milliseconds. Requests exceeding the threshold are logged to the slow_requests table and visible on the route detail page.

SLO targets: Configure p95 and p99 latency targets on the route detail page under SLO Settings. ProxyOS evaluates compliance daily and records results in slo_compliance.

Troubleshooting

  • No analytics data: Check that the access log file exists and is being written: docker compose exec proxyos ls -la /data/proxyos/
  • Stale metrics: Metrics are read from the access log by the instrumentation service. If the log rotation is aggressive, old data may be pruned. Check logrotate config in the container.
ProxyOS