Skip to main content

Responses Proxy dashboard

Open the hosted dashboard at:

https://agent-responses-proxy.svc.cloud.morph.so/

Use the dashboard to see which resources are available, how traffic is being routed, and whether recent requests are being persisted to durable history.

What to check first

After sending a quickstart request, check:

  1. The resource cards show at least one available resource.
  2. The request appears in Recent requests.
  3. The matching routing decision appears in Recent routing decisions.
  4. The session name matches the metadata or headers you sent.

Data sources

The dashboard combines Redis live state with SQL-backed durable history.

Live state:

  • GET /admin/state
  • GET /admin/events

Durable history:

  • GET /admin/decisions?limit=20
  • GET /admin/requests?limit=20

/admin/events is a server-sent event stream. It updates resource cards and summary counters. Durable history is polled every five seconds.

Summary metrics

The top row shows:

  • registered resources
  • in-flight requests
  • affinity mappings
  • telemetry queue depth

These are live Redis values and can reset when Redis or the service container restarts.

Resource cards

Each resource card shows:

  • resource name and id
  • health state
  • pool id
  • weight
  • in-flight count
  • total requests
  • total errors
  • last observed latency
  • last error

Health values are healthy, degraded, unhealthy, or unknown.

Recent routing decisions

The decisions table is loaded from SQL through /admin/decisions. It shows request id, session name, session id, resource id, selection reason, and timestamp.

Common selection reasons:

  • weighted_least_connections
  • session_affinity
  • response_affinity

Recent requests

The requests table is loaded from SQL through /admin/requests. It shows request id, session name, session id, resource id, status code, total tokens, and timestamp.

The token column uses total_tokens when present. If only input and output token counts are available, the dashboard computes the display total.

What persists

Persists when PROXY_DATABASE_URL points at the same SQL database:

  • request history
  • load-balancer decisions
  • sessions
  • token usage
  • registered providers
  • registered model or agent aliases

Resets with Redis or container lifecycle:

  • in-flight counters
  • affinity mappings
  • queue depth
  • live health state
  • live request and error counters

Current limits

  • No provider or model registry forms yet.
  • No historical charts for throughput, error rate, or token usage.
  • No request or response body viewer.
  • Telemetry admin endpoints are not protected by PROXY_ADMIN_TOKEN.
  • Registry endpoints are protected only when PROXY_ADMIN_TOKEN is set.

Troubleshooting

If the dashboard is blank:

curl -fsS https://agent-responses-proxy.svc.cloud.morph.so/healthz
curl -fsS https://agent-responses-proxy.svc.cloud.morph.so/admin/state

If resource cards show but recent requests do not:

  • confirm responses-proxy-worker is running
  • confirm API and worker use the same PROXY_REDIS_URL
  • confirm API and worker use the same PROXY_DATABASE_URL or PROXY_SQLITE_URL
  • run a smoke request, then check /admin/requests

If SSE keeps reconnecting, check browser network logs for /admin/events, API logs for exceptions, and any reverse proxy in front of server-sent events.