Command center
BlockProOperations at a glance: service health worst-first, open incidents by severity, capacity meters, a filterable log stream, and a command palette for every action an operator reaches for.
Command center
What is up, what is not, and what to do about it. Updated .
Services
Worst first.
- Outage
us-east-199.91% uptime
- Degraded
Read replica
eu-west-199.95% uptimep95 640 ms
- Maintenance
Job runner
us-east-199.97% uptime
- Operational
API
us-east-199.99% uptimep95 118 ms
- Operational
CDN
global100% uptimep95 18 ms
- Operational
Email delivery
global99.99% uptime
- Operational
Search
global100% uptimep95 42 ms
- Operational
Web app
global99.98% uptimep95 210 ms
Recent logs
Filter by text or level. New lines are not read aloud unless you ask.
240 of 240 lines
Incidents
Open ones first, most severe at the top.
Automatic failover has not completed. Writes are failing; reads are served from the replica.
Started
Replication lag from the failover in progress.
Started
- minor
Checkout error rate above 1%
MonitoringStarted
- major
Slow image uploads
ResolvedStarted
Capacity
How much room is left.
62% of 100%
- Used62%
81% of 100%
- Used81%
1780 GB of 2000 GB
- Used1780 GB
412 of 500
- Used412
A still, rendered at build time from the same story the tests run. The block itself is interactive; the copy that runs is the one the CLI installs.
Installation
The block is written to your blocks directory, and everything it is built from is installed alongside it. This one needs a licence: sign in once with the CLI and the install is the same command.
pnpm dlx @dowel-ui/cli add command-centerBuilt from
A block is not a black box. Every piece is a component you already have documentation for, and can change independently.
Props
CommandCenterBlock
| Prop | Type | Default |
|---|---|---|
services (required) | CommandCenterService[] | — |
actionsWhat the command palette offers. Empty means no palette. | CommandCenterAction[] | [] |
capacity | CommandCenterCapacity[] | [] |
description | string | "What is up, what is not, and what to do about it." |
headerActions | ReactNode | — |
incidents | CommandCenterIncident[] | [] |
logsRecent log lines, newest last. | LogLine[] | [] |
logsLabel | string | "Recent logs" |
onDownloadLogs | () => void | — |
title | string | "Command center" |
updatedAtMachine-readable time of the last refresh. | string | — |
updatedLabelHuman label for it, e.g. "10 seconds ago". | string | — |
className | string | — |
Accessibility
The overall status is one sentence computed from the worst service, and it comes first — 'one service is down' rather than a wall of tiles to scan. It is not a live region: the page is refreshed by the application, and a status that re-announces on every poll is one nobody can work beside. Health and severity are words on every row, sorted on, with colour agreeing rather than replacing. ⌘K opens the palette but the Actions button is always visible, so the shortcut is an accelerator and not the only way in. New log lines are not read aloud unless asked.
Source
One file, written by dowel add command-center with imports rewritten to your own path alias, and yours to edit from then on.
This is a Pro block.
The preview is the real block, rendered from its own story — a still of it, not a copy of it. The source is installed by the CLI once this machine is signed in with a licence key — dowel login checks the key against the registry before storing it — and lands in your project as a file you own, exactly like a free block.
Registry name: command-center