Uptime Reports
Read and interpret SLA report tables — uptime, latency, downtime budgets, and breach alerts.
Uptime Reports
The uptime report table is the central view for SLA tracking in PulsAPI. It shows real-time and historical performance data for every service you monitor.
Uptime reports are a Pro plan feature. Upgrade to Pro to access SLA tracking.
Accessing the report
- Navigate to the SLA section from the sidebar.
- The report table loads with all your monitored services.
- Use the time window selector at the top to switch between 7-day, 30-day, and 90-day views.
Reading the report table
Each row in the table represents a single service or component. The columns are:
| Column | Description |
|---|---|
| Service | The name of the monitored service (e.g., "AWS EC2", "GitHub Actions"). |
| Status | Current real-time status (Operational, Degraded, Partial Outage, Major Outage). |
| Uptime % | Percentage of time the service was fully operational within the selected window. |
| SLA Target | The active SLA target (e.g., 99.9%). Resolved automatically from your custom target, the vendor's published SLA, or the 99.9% default. |
| SLA Source | Whether the target is Custom, Vendor, or Default. Click the source badge to edit or override the target. |
| Latency P50 | Median response time in milliseconds — the typical performance your users experience. |
| Latency P95 | 95th percentile response time — a realistic measure of performance excluding extreme outliers. |
| Latency P99 | 99th percentile response time — captures tail latency that affects your worst-case users. |
| Downtime Budget | Minutes of downtime remaining before the SLA target is breached. |
| Breach | Whether the SLA target has been breached in the current window. Click to view breach event history. |
Understanding uptime %
Uptime is calculated as:
- Operational status counts as full uptime.
- Degraded performance counts as partial uptime (weighted at 50%).
- Partial outage and major outage count as downtime.
For example, with a 30-day window (43,200 minutes), a service that experienced 45 minutes of major outage would show:
Understanding downtime budget
The downtime budget tells you how much downtime you can still tolerate before the SLA is breached. It is calculated based on your configured SLA target and the selected time window.
For a 99.9% SLA target over 30 days:
If 20 minutes of downtime have already occurred, the remaining budget is 23.2 minutes.
When the budget reaches zero, the SLA is marked as breached.
Latency percentiles explained
PulsAPI reports three latency percentiles for each service:
- P50 (median) — Half of all status checks completed faster than this value. This represents the typical response time your application experiences when polling the service.
- P95 — 95% of checks completed faster than this value. This is the standard SRE benchmark for "realistic worst-case" performance and is the most commonly referenced percentile in SLA discussions.
- P99 — 99% of checks completed faster than this value. This captures tail latency: the slow responses that affect 1 in 100 requests. High P99 relative to P95 indicates occasional severe latency spikes, which may not be reflected in uptime metrics but can still cause timeouts in your application.
Breach detection and alerts
PulsAPI automatically detects when a service's uptime drops below its configured SLA target.
When a breach occurs:
- The service row in the report table is highlighted with a breach indicator.
- If you have alerts configured (Slack, Discord, email, or webhook), a breach notification is sent immediately.
- The breach event is recorded in the service's breach history, accessible by clicking the breach indicator.
- The breach remains flagged until the time window rolls forward and uptime recovers above the target.
Breach event history
Click the breach indicator on any service row to view the full breach event log for that service. Each breach event records:
- The timestamp when the breach threshold was crossed
- The uptime percentage at the time of breach
- The SLA target that was breached
- The cumulative downtime minutes that triggered the breach
This history is useful for postmortems, vendor negotiations, and SLA credit claims.
Setting SLA targets
PulsAPI resolves SLA targets automatically (see SLA target resolution), but you can override them at any time:
- In the SLA report table, click the SLA Target cell for a service.
- Enter your custom target percentage (e.g.,
99.95). - Press Enter or click Save.
PulsAPI immediately begins tracking breaches against your custom target. The SLA Source column will update to show Custom.
Even without a custom SLA target set, PulsAPI tracks uptime and latency for every monitored service and applies the vendor's published SLA (or 99.9% default) for breach detection automatically.
Filtering and sorting
- Filter by status — Show only services that are currently experiencing issues.
- Filter by breach — Show only services that have breached their SLA target.
- Sort by any column — Click a column header to sort ascending or descending.
- Search — Use the search bar to find a specific service by name.