Creating a Dashboard
Create the dashboard file
Create a new TypeScript file in
pongo/dashboards/, for example production.ts:Dashboard Configuration
Required Fields
| Field | Type | Description |
|---|---|---|
name | string | Display name for the dashboard |
slug | string | URL-friendly identifier |
monitors | string[] | Array of monitor IDs to include |
Optional Fields
| Field | Type | Description |
|---|---|---|
public | boolean | Whether the dashboard is publicly accessible (default: false) |
slaTarget | number | Target uptime percentage (e.g., 99.9 for 99.9%) |
Adding Monitors
Themonitors array references monitor IDs defined in your pongo/monitors/ files. Monitor IDs are derived from the export key in pongo/monitors/index.ts:
Setting SLA Targets
TheslaTarget field sets your uptime goal. Pongo tracks actual uptime and displays:
- Current uptime percentage
- SLA target comparison
- Visual indicator (green when meeting target, red when below)
99.9(“three nines”) = ~43 minutes downtime/month99.95= ~21 minutes downtime/month99.99(“four nines”) = ~4 minutes downtime/month
Making Dashboards Public
Public dashboards create status pages accessible without authentication:- Real-time monitor status
- Response time charts
- Uptime bars (90-day history)
- Latency percentiles (P50, P95, P99)
- Status distribution
- Incident timeline
- Announcements
- RSS/Atom feeds
Public Dashboard Routes
| Route | Description |
|---|---|
/shared/[slug] | Public status page |
/shared/[slug]/feed.xml | RSS feed |
/shared/[slug]/feed.atom | Atom feed |
Complete Examples
Production Dashboard
Internal Dashboard
Third-Party Status Dashboard
Dashboard Features
All dashboards display:Monitor List
- Current status (up, down, degraded)
- Latest response time
- Last checked timestamp
- Quick links to monitor details
Charts and Metrics
- Response time over time
- Uptime percentage
- Error rate
- Latency percentiles
Status History
- 90-day uptime bars
- Daily status distribution
- Incident correlation
Incidents and Announcements
- Active incidents with severity
- Incident timeline with updates
- Scheduled maintenance notifications
- General announcements
Dashboard Navigation
Access dashboards through:- Dashboard List:
/- Overview of all dashboards - Private Dashboard:
/dashboards/[id]- Requires authentication - Public Status Page:
/shared/[slug]- No authentication required - Monitor List:
/monitors- All monitors with filtering - Alert History:
/alerts- Alert management and history