Endpoints
The Endpoints view shows every message endpoint across your monitored services — both inbound listeners (where messages are received) and outbound senders (where messages are published). It lives as a tab in the Messaging Explorer and as a standalone page at /endpoints (the old /listeners URL redirects here).

Endpoint grid
Each endpoint is a row. The grid leads with a selection checkbox (bulk actions operate on the rows you tick):
| Column | Description |
|---|---|
| Service | Owning service (shown in fleet/multi-service scope) |
| (icon) | Transport scheme icon |
| Name | Friendly endpoint name; falls back to the URI when the transport doesn't supply one (so exchange senders are no longer blank) |
| URI | The endpoint address, with a transport-type tag and a row of line-2 pills (broker role, mode, listener, system, interop, tags) |
| Status | Runtime status (see below), with small CB / BP icons when the circuit breaker has tripped or back pressure is active |
| Direction | Inbound / Outbound / Both / Local |
| Tags | Transport tag icons |
Six metrics columns — Msgs/hr, Sent/hr, Rcvd/hr, Avg Exec, DLQ/hr, Errors/hr — are hidden by default and revealed by the Metrics toggle in the toolbar (the preference is remembered). The grid also offers transport/scheme and direction facets, a URI search box, and a "hide system endpoints" toggle.
Status values
| Status | Meaning |
|---|---|
| Accepting | Listener is running and processing messages normally |
| Stopped | Listener has been paused by an operator |
| TooBusy | Back pressure is throttling this listener |
| Latched | Circuit breaker has tripped — paused due to repeated failures |
| Active / Latched | For senders (no listening status of their own): Active when the sender circuit is closed, Latched when it has tripped |
A listener can read Accepting while its transport channel is actually dead. When that happens, CritterWatch surfaces a dark health pill under the status — Disconnected (the channel dropped) or Faulted (the receive loop stopped) — so a silently-stuck listener is visible instead of looking healthy. An opt-in, rate-limited auto-kickstart can restart such a listener for you.
Endpoint controls
Lifecycle actions are bulk-only: tick one or more rows, then use the toolbar buttons. (Per-row Pause/Restart buttons were removed to reclaim column space.)
| Toolbar action | Effect |
|---|---|
| Pause Selected | Stop consuming on the selected listeners across the entire application, durably. Every node stops pulling, and the pause survives restarts + new nodes joining until you resume. Messages stay safely on the broker. |
| Drain Selected | Graceful shutdown — stop accepting new messages but let queued + in-flight work finish, then halt. The right call before a deploy. |
| Restart Selected | Resume paused or drained listeners across every node; the backlog that accumulated drains down. |
See the downstream-system-broken scenario for the full pause-and-resume workflow.
Pause All / Restart All apply to every endpoint in one service. They appear only on the standalone Endpoints page when a single service is selected and nothing is ticked — they're hidden inside the embedded Messaging Explorer tab.
Edit endpoint (per-row kebab)
Each row's actions live in a compact ⋮ kebab menu; its Edit item opens an Edit Endpoint drawer with two forms applied to the running endpoint without a restart:
- Buffering limits — Maximum (messages to buffer) and Restart Threshold.
- Circuit breaker — Failure Percentage Threshold and Pause Time (seconds).
Transport Type Icons
CritterWatch displays a transport icon alongside each endpoint URI to make it easy to identify at a glance:
- RabbitMQ (rabbit icon)
- SQL Server (database icon)
- In-memory (lightning bolt icon)
- Kafka (stream icon)
- Azure Service Bus (cloud icon)
