Skip to content

UI Overview

CritterWatch provides a Vue 3 single-page application served from the CritterWatch server. All views update in real time via SignalR — no manual refresh required.

CritterWatch Dashboard — the landing view, a system-wide health summary across all monitored services

The sidebar is organised into groups. Each group collects the screens you reach for at the same stage of an investigation. The header always shows the current page's title — that header title is the page's heading (pages don't render a page-level heading of their own; anything below it is section-level), and most explorer pages show a one-line description under it. The sidebar collapses to an icon-only rail — click its right-edge divider to toggle; the collapsed rail shows each item's name on hover.

Monitor

SectionDescription
DashboardFleet-wide health summary — top busiest / DLQ services, throughput, recent events
ServicesPer-service detail: Overview capabilities, event store, durability, cluster, health & metrics

Explore — fleet-wide explorers, each deep-linkable to a single service with ?service=

SectionDescription
Workflow"Where does this type fit?" — a message/event/saga traced across services as an interactive flow graph or Event Modeling lanes (see Workflow)
Conversations"What actually happened to this one message?" — a concrete instance's real send/receive/execute chain as a causal graph or a compacted timeline, captured live with no tracing backend (see Conversations)
Messaging ExplorerMessages catalog, routing, topology graphs, brokers, and the Endpoints grid in one place (see Topology, Message Routing, Endpoints)
Event Store ExplorerStreams, events, projection operations, and event-store configuration (see page docs)
Document Store ExplorerDocument mappings and metadata-filtered document queries across stores (see page docs)
EF Core ExplorerEvery EF Core DbContext registered across services — Wolverine-integration badges, entity maps, pending-migration probes (see page docs)
Saga ExplorerSagas across services, with per-saga state shape and live instance drill-in (see page docs)
HTTPThe fleet's ASP.NET endpoint surface — Wolverine chains + Minimal API/MVC/Razor/SignalR rows — with chain detail (see ASP.NET Endpoints, HTTP Chain Detail)
gRPCEvery Wolverine-mapped gRPC service method across the fleet — stream kind, forwarded message, response, dispatching chain — with per-RPC detail

Reliability

SectionDescription
DurabilityInbox/outbox sparklines and persistence queue depths
RebuildsProjection rebuild orchestration — running/completed rebuild runs with retry and cancel
Dead LettersDLQ explorer with replay, discard, and edit capabilities
ScheduledQueued messages awaiting future delivery

Health

SectionDescription
TimelineChronological system event + operator-action feed

Configuration

SectionDescription
Alert ConfigPer-service alert thresholds and baselines
Audit LogRecord of operator-initiated actions
Store InspectorThe console's own live frontend state — Pinia stores + the SignalR message log (/raw); a debugging surface, not a data browser
SettingsTrace-provider and metrics-source bindings

Retired top-level items. Earlier builds had standalone Projections, Listeners, Topology, and Event Store nav items. These were folded into the explorers above: /projections, /listeners, /topology, and /events now redirect into the Event Store Explorer / Messaging Explorer, so old bookmarks still resolve. There is no separate "Alerts" page — active alerts surface on the Timeline and on each service's Health & Metrics tab; thresholds live under Alert Config.

New to a system? Several of the Explore screens read your running application's structure back to you — its message flows, event model, generated HTTP surface, and installed schema, all assembled live rather than drawn by hand. Understanding Your System maps those reflection surfaces and the order to reach for them.

Global Service Filter

A service selector at the top of the page lets you focus the console on a single service. When a service is selected:

  • Metrics, alerts, DLQ entries, and projections are scoped to that service
  • Timeline events are filtered to show only that service's activity
  • Commands are pre-populated with the selected service name

This is particularly useful during incident investigation — select the affected service and the filtered views show only relevant data.

The filter is hidden on the Dashboard and Services screens: the Dashboard is a fleet-wide overview with no per-service context, and the Services list already carries its own scoping, so a global filter there would be a no-op.

Real-Time Updates

All data is pushed from the CritterWatch server via a WebSocket connection (SignalR). A connection pill in the header (far right, beside the alerts bell) shows:

  • Green "connected" — receiving live updates
  • Yellow — reconnecting (brief connection interruption)
  • Red — disconnected (server unreachable)

Next to the connection pill, a data-freshness pill ("12s ago" with a refresh icon) shows how long ago the last live update landed — a quick tell for "is this screen actually current?" when something looks stale.

When the connection is lost, CritterWatch automatically attempts to reconnect with exponential backoff.

Per-Node Liveness Dot

A small coloured dot sits beside every node number on the Services and Node detail pages. It tracks a quick liveness ping each running service sends to CritterWatch every 30 seconds — green when the most recent ping arrived within the last minute, amber after one missed beat, red after five. See Services → Heartbeat dot for the full thresholds, what each colour means, and what to check first when one turns red.

View Modes

Some views (notably Services, and the Cluster tab's nodes/agents) offer a Card/Table toggle:

  • Card view — visual grid with health status badges, suitable for at-a-glance monitoring
  • Table view — sortable, filterable data table for detailed comparison

Keyboard Shortcuts

ShortcutAction
?Show keyboard shortcuts
g dGo to Dashboard
g sGo to Services
g tGo to Timeline
g eGo to Events (Event Store Explorer)
g aGo to Alert Config
g lGo to Audit Log
/Focus the global service filter (no-op where the filter is hidden)
EscapeClose modal / clear filter

Free for read-only monitoring. A commercial license is required for administrative actions and the MCP server.