Skip to main content

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"]
No authentication

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.

If nothing is listening on 8080

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:

ModuleWhat its page shows
clio_bdevOne block device at a time: a capacity meter and the device's full statistics (bandwidth, latency, ops, …).
clio_cte_coreThe storage-target roster — score, free space, capacity, latency, bandwidth, bytes read/written — with register / unregister buttons.
clio_safe_bdevArray members and recovery progress, with add / replace / remove.
everything elseA 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:

  1. Pick clio_bdev from the module list.
  2. 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
  3. Click Validate. Every field is checked and nothing is created; errors come back per field.
  4. 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​