Skip to content

Status Page

The Status page provides real-time visibility into your bot's uptime, shard health, and system performance metrics.

Shard Grid

Each shard is displayed as a card showing live health data from the most recent heartbeat event:

IndicatorSource FieldDescription
Online/OfflineHeartbeat recencyGreen if heartbeat received within 2 minutes, red otherwise
WebSocket PingwsPingMsRound-trip WebSocket latency to Discord in milliseconds
Memory UsagememoryMbProcess RSS memory usage in megabytes
Guild CountguildCountNumber of cached guilds on this shard
Voice ConnectionsvoiceConnectionsActive voice connections on this shard
CPU UsagecpuPercentProcess CPU utilization (0--100%)

Note

Shard cards use color coding to highlight potential issues:

  • Green border -- healthy, all metrics within normal range
  • Yellow border -- warning, elevated ping or memory
  • Red border -- critical, shard offline or extremely high resource usage

Single-Bot Mode

When running a single shard with no clustering (shard 0, no clusterId configured), the page shows a single clean card without the "Cluster 0 > Shard 0" hierarchy header. This provides a simple, uncluttered view for small bots.

Multi-Cluster View

When clusterId is configured (see Multi-cluster), the shard grid is organized into a cluster > shard hierarchy:

Cluster 0
  Shard 0   Online   32ms   128MB   1,200 guilds
  Shard 1   Online   28ms   135MB   1,150 guilds

Cluster 1
  Shard 2   Online   41ms   140MB   1,220 guilds
  Shard 3   Offline  ---    ---     ---

Each cluster group is collapsible for easier navigation with many shards.

API Usage

The Status page includes an API usage section showing REST API call statistics from the api_routes_snapshot events (emitted every 5 minutes):

ColumnDescription
RouteNormalized REST API route path
CountNumber of calls in the snapshot window

The top 10 routes by call count are displayed. This helps identify which API endpoints your bot uses most heavily, which can be useful for optimizing rate limit budgets.

Additional REST metrics from the heartbeat:

MetricDescription
API RequestsTotal REST API requests in the snapshot window
429 GlobalGlobal rate limit hits
429 BucketBucket-level rate limit hits
Invalid RequestsRequests that returned 4xx errors

History Tabs

Below the live shard grid, history tabs show per-shard performance trends over time:

Ping History

WebSocket ping latency over time. Spikes may indicate Discord API issues or network problems. Sustained high ping suggests the bot's hosting region is far from Discord's gateway servers.

Memory Usage

Process memory usage trend. A steadily increasing line may indicate a memory leak. Sudden drops correspond to process restarts.

CPU Usage

CPU utilization percentage over time. Spikes correlate with heavy command processing or event bursts. Sustained high CPU may indicate the need for more shards or optimization.

Event Loop p95

The 95th percentile event loop delay in milliseconds, measured using Node.js perf_hooks.monitorEventLoopDelay. High values indicate the event loop is being blocked by synchronous operations, which can cause command response delays.

Note

A healthy Node.js process has an event loop p95 under 20ms. Values above 100ms indicate significant blocking that may affect bot responsiveness. Common causes include synchronous file I/O, heavy JSON parsing, or CPU-intensive computations on the main thread.

Offline State

When the bot is offline and no heartbeat data is available:

  • Shard cards show a red "Offline" status
  • The last-seen online time is displayed (e.g., "Last seen 2 hours ago")
  • History charts show a gap where no data was collected

INFO

The Status page auto-refreshes every 30 seconds. No manual refresh is needed to see updated shard health.

Dicolytics — Discord bot analytics