What are Dashboards?
Dashboards are configuration files that:- Group multiple monitors by service, environment, or team
- Calculate aggregate uptime and availability metrics
- Track SLA targets and violations
- Optionally expose public status pages
- Display incidents and announcements
- Generate RSS/Atom feeds for status updates
DashboardConfig Interface
Dashboards are defined as TypeScript configuration objects:Display name for the dashboard in the UI
URL-friendly identifier used in routes. Must be unique across all dashboards.
Whether the dashboard is accessible without authentication. Public dashboards are accessible at
/shared/[slug].Array of monitor IDs to include. Monitor IDs are the filenames (without
.ts extension) from pongo/monitors/.Target uptime percentage (e.g.,
99.9 for 99.9%). Dashboard calculates actual uptime against this target.Public vs Private Dashboards
Private Dashboards
By default, dashboards are private and require authentication:- Only accessible when logged in
- Accessed at
/dashboards/[id] - Full access to all features and settings
Public Dashboards
Public dashboards serve as status pages for your users:- Accessible without authentication
- Accessed at
/shared/[slug] - Include RSS and Atom feeds
- Show incidents and announcements
- Display uptime bars and metrics
Public dashboards are perfect for customer-facing status pages. They show service health without exposing internal details or requiring login.
SLA Targets
Set an SLA target to track uptime commitments:- Current uptime: Percentage of successful checks
- SLA status: Whether current uptime meets target
- Downtime budget: Remaining allowed downtime based on target
Common SLA Targets
| Target | Downtime/month | Downtime/year | Use Case |
|---|---|---|---|
| 90% | 72 hours | 36.5 days | Development/testing |
| 95% | 36 hours | 18.25 days | Non-critical services |
| 99% | 7.2 hours | 3.65 days | Standard production |
| 99.9% | 43 minutes | 8.76 hours | High-availability services |
| 99.99% | 4.3 minutes | 52.56 minutes | Mission-critical systems |
Dashboard Features
Public dashboards automatically include:Uptime Metrics
- Overall uptime percentage
- Response time charts (P50, P95, P99)
- Status distribution (up/down/degraded)
- Uptime bars showing check history
Incident Timeline
Display incidents frompongo/incidents/ with:
- Severity levels (critical, major, minor)
- Status tracking (investigating, identified, monitoring, resolved)
- Affected monitors
- Timestamps and resolution notes
Announcements
Show scheduled maintenance and updates frompongo/announcements/ with:
- Type indicators (info, warning, success, maintenance)
- Expiration dates
- Dashboard-specific filtering
Feed Syndication
Automatic RSS and Atom feeds:- RSS:
/shared/[slug]/feed.xml - Atom:
/shared/[slug]/feed.atom
Examples
Production Status Dashboard
pongo/dashboards/status.ts
/shared/status showing the uptime of three services.
Internal Monitoring Dashboard
pongo/dashboards/dogfood.ts
Private Team Dashboard
pongo/dashboards/engineering.ts
Multi-environment Dashboard
pongo/dashboards/all-environments.ts
File Structure
Dashboards live inpongo/dashboards/ and must be registered in the index file:
pongo/dashboards/index.ts
The filename (without
.ts) becomes the dashboard ID used in the database and internal references.Routes
Private Dashboard Routes
| Route | Description |
|---|---|
/dashboards | List all dashboards |
/dashboards/[id] | View private dashboard |
Public Dashboard Routes
| Route | Description |
|---|---|
/shared/[slug] | Public status page |
/shared/[slug]/feed.xml | RSS feed |
/shared/[slug]/feed.atom | Atom feed |
Related Content
Dashboards can display additional context:Incidents
Markdown files inpongo/incidents/ with frontmatter:
Announcements
Markdown files inpongo/announcements/ with frontmatter:
Best Practices
Group related monitors
Group related monitors
Set realistic SLA targets
Set realistic SLA targets
Base SLA targets on actual business requirements, not arbitrary numbers. Consider the impact of downtime on your users.
Use public dashboards for transparency
Use public dashboards for transparency
Customer-facing status pages build trust. Make your public dashboard informative but don’t expose sensitive internal details.
Keep slugs short and memorable
Keep slugs short and memorable
Public dashboard URLs should be easy to remember and share, like
/shared/status or /shared/api.Next Steps
Monitors
Create monitors to add to dashboards
Alerts
Set up alerts for dashboard monitors