Dashboard
Every CLIO Runtime daemon serves a web dashboard. Start the runtime and open http://127.0.0.1:8080 — there is nothing to install, no separate process to run, and no Python involved.
This page is a tour. The full reference — configuration, the REST API, and how to add pages for your own ChiMod — is under Deployment → Monitoring.
1. Open it
Start the runtime as in the Quick Start:
clio_run start &
The daemon logs where the dashboard is listening:
Viz: dashboard listening at http://127.0.0.1:8080
Open that address in a browser. If :8080 is taken on your machine, pick
another port; if you are on a remote host, keep the dashboard on loopback
and tunnel to it:
# Different port
clio_run start --viz-port 9000 &
# Remote host: tunnel from your laptop, then open http://127.0.0.1:8080 locally
ssh -L 8080:127.0.0.1:8080 user@node1
Running in Docker? Bind the dashboard to all interfaces inside the container and publish the port:
services:
iowarp:
image: iowarp/deploy-cpu:latest
environment:
- CLIO_VIZ_BIND=0.0.0.0
ports:
- "9413:9413" # runtime RPC
- "8080:8080" # dashboard
command: ["clio_run", "start"]
The dashboard shows runtime internals and can create and destroy pools. It listens on loopback by default for a reason — do not bind it to a public interface without a reverse proxy that enforces access control.
The dashboard is compiled into the runtime only when the build found
Poco::Net. If clio_run start logs a Viz: warning instead of the
green listening line, your build lacks it — see
Build requirements.
2. The tour
The navigation bar has three tabs — Cluster, Pools, Config — and a connection indicator. Every page refreshes itself every couple of seconds.
Cluster
The landing page. One card per node in the cluster with its IP, alive/dead state, and leader / this node badges — on a laptop that is a single card. Below it, This node shows live CPU and memory meters and a workers summary: how many tasks are queued, blocked, and processed. Click a node card (or the Workers card) to open the node page: utilization plus a per-worker table of queue depth, blocked and periodic tasks, load, and suspend period.
Pools
Everything composed on this node, grouped by ChiMod. With the default
configuration you will see the DRAM block device (clio_bdev), the CTE
core (clio_cte_core) and its interposition chain (cache, indexer,
replication), the CAE, and the filesystem pool (clio_cte_filesystem)
that the FUSE mount drives.
Each pool is a card. Click it to open the pool's own website:
| Module | What its page shows |
|---|---|
clio_bdev | One block device at a time: a capacity meter and the device's full statistics (bandwidth, latency, ops, …). |
clio_cte_core | The storage-target roster — score, free space, capacity, latency, bandwidth, bytes read/written — with register / unregister buttons. |
clio_safe_bdev | Array members and recovery progress, with add / replace / remove. |
| everything else | A generic pool page: identity, the scheduler's learned task predictions for the pool, and a box to run any of the pool's Monitor() queries. |
The corner × on a card destroys that pool (after a confirmation). The admin pool cannot be destroyed — that is the runtime itself.
Config
The settings the daemon actually came up with — after the config file, environment variables, and CLI flags were applied — plus the route table: every REST endpoint and static-page mount, and which ChiMod registered it. Handy when a setting does not seem to take effect.
3. Create a pool from the browser
Try the Add Pool button on the Pools tab:
- Pick
clio_bdevfrom the module list. - Fill in the form — a RAM device is the quickest:
- pool_name:
ram::scratch - pool_id: leave the suggested free id
- bdev_type:
ram - capacity:
256MB
- pool_name:
- Click Validate. Every field is checked and nothing is created; errors come back per field.
- Click Create. A new card appears under
clio_bdev; click it to watch the device's stats.
Modules that ship a form (bdev, safe-bdev, CTE core) get typed fields like
these. Any other module gets a compose editor instead — the same identity
fields plus a raw-YAML box for module parameters, so anything you can put in
clio.yaml's compose section you can also create here.
To retire the pool, click the × on its card.
4. Watch real work
With the FUSE mount from the Quick Start up, copy a few files into it and keep the dashboard open:
- Cluster → This node: the processed count climbs and the worker meters move.
- Pools →
clio_cte_core: the target roster's bytes written and writes columns show the pages landing on the DRAM tier. - Pools →
clio_bdev: the block device's capacity meter and statistics update as pages are written.
5. Turn it off or move it
clio_run start --no-viz # don't serve it on this node
clio_run start --viz-bind 0.0.0.0 # reachable off-box (see the warning above)
Or set it once in ~/.clio/clio.yaml:
viz:
enabled: true
port: 8080
bind: "127.0.0.1"
Only a daemon started with clio_run start serves the dashboard by default.
A program that embeds the runtime (a test, an adapter, your own
CLIO_INIT) does not open a port unless you set viz.enabled or
CLIO_VIZ_ENABLE=1.
Next steps
- Monitoring → Runtime Dashboard — the REST API behind every page, config knobs, and the multi-node interactive cluster
- Web Dashboard Integration — give your own ChiMod a page and endpoints
- Configuration → Web Dashboard —
the
vizsection andCLIO_VIZ_*variables