warn and fail severity.
Prerequisites
Prerequisites
- DevHelm CLI installed or an API token
- An HTTP monitor — see First HTTP monitor
Why response time budgets matter
An endpoint that’s technically “up” but responding in 10 seconds is effectively broken for users. Response time assertions let you define performance budgets at multiple levels, catching degradation early.Set up layered thresholds
Use two assertions — a warning for early detection and a failure for critical slowdowns:- Warning at 500ms — endpoint is slower than expected, investigate
- Failure at 2000ms — endpoint is critically slow, open a
DEGRADEDincident
Combine with trigger rules
Response time assertions detect individual slow checks. For incident creation, use aresponse_time trigger rule to aggregate across checks:
DEGRADED incident when the p95 response time exceeds 2 seconds across any region, while still opening a DOWN incident for complete failures.
Aggregation types
| Type | Behavior |
|---|---|
all_exceed | Every check in the window must exceed the threshold |
average | Average response time exceeds the threshold |
p95 | 95th percentile exceeds the threshold |
max | Maximum response time exceeds the threshold |
Route differently by severity
Use notification policies to handleDEGRADED and DOWN incidents differently:
| Severity | Alert channel | Urgency |
|---|---|---|
DEGRADED | Slack channel | Awareness — investigate during business hours |
DOWN | PagerDuty | Page on-call immediately |
Choosing thresholds
| Endpoint type | Warn threshold | Fail threshold |
|---|---|---|
| Health check / status | 200ms | 1000ms |
| Public API | 500ms | 2000ms |
| Dashboard page | 1000ms | 5000ms |
| Background webhook | 2000ms | 10000ms |
Next steps
Incident policies
Configure trigger rules and response time aggregation.
HTTP assertions
Full list of HTTP assertion types.
Alert routing by tag
Send degraded and down alerts to different teams.