Skip to content

Dashboard Reference

The ArqonHPO Dashboard is a web-based UI for monitoring and interacting with running optimization jobs.

ArqonHPO Dashboard


Starting the Dashboard

arqonhpo dashboard --state state.json --addr 127.0.0.1:3030

Options

Flag Default Description
--state (required) Path to solver state file
--events (optional) Path to events log file
--actions (optional) Path to actions log file
--addr 127.0.0.1:3030 Address to bind HTTP server

Then open http://127.0.0.1:3030 in your browser.


Interface Overview

The dashboard features a high-visibility, "top-down" layout optimized for real-time control:

  • Control Actions — (Top, Full Width) Issue immediate commands like pause, resume, or rollback.
  • Run Summary — (Full Width) The "Pulse" of the run: Budget, History, and Best results.
  • Objective Trend — (Full Width) A stylized chart showing convergence over time.
  • Recent Evaluations — The most recent results processed by the solver.
  • Audit Events — A narrative stream of phase shifts, warnings, and errors.

REST API Endpoints

The dashboard serves a REST API for programmatic access:

GET /api/state

Returns the full solver state.

curl http://127.0.0.1:3030/api/state

Response:

{
  "config": {
    "seed": 42,
    "budget": 100,
    "bounds": { ... }
  },
  "history": [
    {"params": {"x": 0.5}, "value": 1.23, "cost": 1.0},
    ...
  ],
  "run_id": "demo-run-123"
}

GET /api/summary

Returns a compact summary of optimization progress.

curl http://127.0.0.1:3030/api/summary

Response:

{
  "run_id": "demo-run-123",
  "budget": 100,
  "history_len": 45,
  "best": 0.0234,
  "latest": 0.3491
}

GET /api/events

Returns recent events from the events log.

curl "http://127.0.0.1:3030/api/events?limit=10"

Query Parameters:

Param Type Description
event string Filter by event type (e.g., ask, tell)
q string Search query in event details
limit int Maximum events to return (default: 100)

Response:

{
  "events": [
    { "timestamp_us": 1704067201000, "event": "ask", "batch_size": 1 },
    { "timestamp_us": 1704067202000, "event": "tell", "count": 1 }
  ]
}

GET /api/actions

Returns recent actions from the actions log.

curl "http://127.0.0.1:3030/api/actions"

Response:

{
  "actions": [
    { "timestamp_us": 1704067300000, "action": "pause", "reason": "manual" },
    { "timestamp_us": 1704067400000, "action": "resume", "reason": "stable" }
  ]
}

POST /api/actions

Send an action to the solver.

curl -X POST http://127.0.0.1:3030/api/actions \
  -H "Content-Type: application/json" \
  -d '{"action": "pause", "reason": "debug"}'

Action Fields:

Field Type Description
action string Required. (e.g., pause, resume, rollback)
reason string Optional context for audit trail

Response:

{ "ok": true }

Security Considerations

[!WARNING] The dashboard does not have authentication. Bind only to 127.0.0.1 or use a reverse proxy with auth.

For production use:

# Behind nginx with basic auth
arqonhpo dashboard --state state.json --addr 127.0.0.1:3030

Prometheus Metrics

The dashboard also exposes Prometheus metrics if --metrics-addr is set:

arqonhpo dashboard --state state.json --addr 127.0.0.1:3030 --metrics-addr 127.0.0.1:9898

Then scrape http://127.0.0.1:9898/metrics.


Next Steps