React Job Queue Monitor

The screen you open when a backfill is running or something failed overnight. Jobs grouped by status, a duration histogram so you can see whether things are getting slower, retry on the failures, and logs one click away on any row.

Job queue
1 running2 queued1 failed
p50 12.8s
  • Running· 42.3s

  • Queued·

  • Queued·

  • Failed· 8.9s· attempt 2· signing key expired

  • Succeeded· 3.4s

  • Succeeded· 1m 1s

  • Succeeded· 12.8s

  • Succeeded· 28.6s

  • Succeeded· 1.9s

Installation

npx shadcn@latest add "https://kelvinui.com/registry/job-queue-monitor.json"

Props

PropTypeDescription
jobsJob[]{ id, name, status, durationMs?, attempts?, queue?, error?, logs? }
onRetry(id: string) => voidFired when a failed job is retried
onCancel(id: string) => voidFired when a queued/running job is cancelled

The histogram is the signal

The status counts tell you what is happening; the duration histogram tells you whether it's healthy. Built from every finished job's durationMs, with the p50 called out, it turns "jobs are running" into "jobs that used to take 3s are now taking 40s" — the early sign of a degrading worker that a plain list hides.

Retrying a failed job optimistically moves it back to queued and increments its attempt count; cancelling removes it. Expanding a row reveals its logs on a dark panel — the same "one click to the logs" an engineer reaches for the instant something turns red. Wire onRetry/onCancel to your queue backend and feed jobs from a poll or a stream; the component owns the optimistic UI and re-syncs when the prop updates.

New components every week

Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.