shadcn.io is not affiliated with official shadcn/ui
Sortable Service Health Table Stats Block for React
A table of services in a tinted frame with sortable column heads, 30-day uptime strips, response times and error rates, and a mark and a word on any service that is down.
Installation
Overview
A service-health table for React with Base UI. Pulsemoor, a status page for hosted software, opens with how many of six services are running normally. Under that, a table sits in a tinted frame: the column heads are buttons that sort by service, uptime, response time or error rate, and each row has a strip of the last 30 days, one bar per day. A normal day is a tall full-weight bar, a degraded day is shorter and lighter, an outage day is the shortest and lightest. A service that is degraded or down right now gets a mark and a word. It is a native table built from Frame, Status and Guides.
FAQ
How do I change the services?
Edit SERVICES at the top of the file. A service has a name, a region, its current state (now), the median response time, the errors rate and a list of incidents, each a day from 1 to 30, a kind (degraded or outage) and the minutes it lasted. The strips, the uptime figures, the count in the headline and the spoken description of every strip are computed from the incidents.
How is uptime worked out?
An outage's minutes count in full and a degraded incident's minutes count at half, out of the minutes in the 30 days. The rule is written under the table, and a service with no incidents reads 100.00%.
How does sorting work?
Each sortable head is a button. The first click on a head puts the worst rows on top (lowest uptime, slowest response, highest error rate, or service names A to Z); a second click turns the order around. The active head carries aria-sort, and a hidden status line says how the rows are ordered, for example "Sorted by uptime, lowest first". The order is local to the page.
Which services get a status colour?
Only a service that is degraded or down right now: a warning or destructive mark with a triangle or a cross, and the words "Degraded now" or "Outage now". Every other row is quiet. The strip tells days apart by height and weight, not hue.
Is the table accessible?
Yes. It is a native table with a caption, column headers and the service as the row header. Each strip is an image whose name says how many outage and degraded days it holds. The sort buttons are real buttons with a visible focus ring, and the scroll area is focusable where the table is wider than the screen.
Related
- Pro
Status Matrix Stats
HeatmapsSix services by the last eight hourly check windows: passing cells in a foreground tone, degraded cells half filled, a failed cell outlined with a cross and the destructive dot, tooltips and an uptime column.
- Pro
Rate Limit Table Stats
TablesA framed table of API endpoints with method badges, calls used against each limit, a bar with a tick at the 80% line and a countdown to each window's reset.
- Pro
A gateway usage table where each route shows calls, error rate, a p50-to-p99 latency range on one scale, and a bar for its share of the rate limit.
- Pro
A 3 by 3 grid of hosting services whose latency and twelve-bar history advance on a timer you can pause, with the one slow service marked.
- Pro
A background-job table where each queue's depth is a bar split into waiting, running and retrying, with the backlog total in the header.
- Pro
Status Tile Grid Stats
KPI bands and tilesSix service tiles for a hosting company, each with a state word and a p95 latency, where healthy tiles are plain and only a degraded and an incident tile change, with their cause and how long they have lasted.