diff --git a/docs/integrations/web-servers/heroku.md b/docs/integrations/web-servers/heroku.md index 311a96faa8..13d6e3c43a 100644 --- a/docs/integrations/web-servers/heroku.md +++ b/docs/integrations/web-servers/heroku.md @@ -361,6 +361,31 @@ The **Heroku - Application Errors** dashboard demonstrates the use cases for Her - **App Errors by Component**. Shows the distribution of application errors for different Heroku components. - **App Error Trend by Component**. Shows the count of application errors for different Heroku components over a period of time. +## Create monitors for Heroku app + +import CreateMonitors from '../../reuse/apps/create-monitors.md'; + + + +### Heroku monitors + +| Name | Description | Trigger Type | Alert Condition | +|:--|:--|:--|:--| +| `Heroku - App Boot Timeout (H20)` | H20 fires when a web dyno fails to bind its assigned port within 60 seconds of startup. The app is completely unreachable during this window. Common causes include long-running startup tasks, migrations, or misconfigured PORT bindings. A single occurrence is enough to alert, since no requests are being served. | Critical | Count > 0 | +| `Heroku - App Crashed (H10)` | Detects when a dyno process exits unexpectedly. Any crash means all in-flight requests to that dyno return 503 errors. | Critical | Count > 0 | +| `Heroku - Dyno Restarting Repeatedly` | Detects when a web dyno repeatedly transitions from up to starting, indicating a crash-looping process. A single restart during a deploy is normal; repeated restarts outside of deploy windows indicate an unstable process dropping all active connections on each cycle. | Warning | Count >= 3 | +| `Heroku - Dyno Restarting Repeatedly` | Detects when a web dyno repeatedly transitions from up to starting, indicating a crash-looping process. A single restart during a deploy is normal; repeated restarts outside of deploy windows indicate an unstable process dropping all active connections on each cycle. | Critical | Count >= 5 | +| `Heroku - High HTTP 5xx Error Rate` | Detects HTTP 5xx errors returned by the application (distinct from Heroku platform H-errors). A rising 5xx rate indicates unhandled exceptions, broken deployments, or backend dependency failures. | Warning | Count >= 5 | +| `Heroku - High HTTP 5xx Error Rate` | Detects HTTP 5xx errors returned by the application (distinct from Heroku platform H-errors). A rising 5xx rate indicates unhandled exceptions, broken deployments, or backend dependency failures. | Critical | Count >= 10 | +| `Heroku - High Memory Usage (Approaching R14 Quota)` | Fires when a dyno's memory usage crosses 90% of its quota. Exceeding the quota triggers an R14 error, causing the dyno to swap heavily and producing severe latency degradation before an eventual crash. Non-zero swap memory in the output is a strong secondary signal. | Warning | Count >= 3 | +| `Heroku - High Memory Usage (Approaching R14 Quota)` | Fires when a dyno's memory usage crosses 90% of its quota. Exceeding the quota triggers an R14 error, causing the dyno to swap heavily and producing severe latency degradation before an eventual crash. Non-zero swap memory in the output is a strong secondary signal. | Critical | Count >= 5 | +| `Heroku - High Request Latency` | Detects requests taking over 5 seconds, a leading indicator of degraded user experience and a risk of hitting the 30-second H12 cutoff. Common causes include slow database queries, external API calls without timeouts, and GC pauses. | Warning | Count >= 3 | +| `Heroku - High Request Latency` | Detects requests taking over 5 seconds, a leading indicator of degraded user experience and a risk of hitting the 30-second H12 cutoff. Common causes include slow database queries, external API calls without timeouts, and GC pauses. | Critical | Count >= 10 | +| `Heroku - Request Timeout (H12)` | The Heroku router enforces a hard 30-second response deadline and logs H12 when a dyno fails to respond in time. Sustained H12 spikes indicate blocking I/O, unoptimized database calls, or under-provisioned dynos for current traffic. | Warning | Count >= 3 | +| `Heroku - Request Timeout (H12)` | The Heroku router enforces a hard 30-second response deadline and logs H12 when a dyno fails to respond in time. Sustained H12 spikes indicate blocking I/O, unoptimized database calls, or under-provisioned dynos for current traffic. | Critical | Count >= 5 | +| `Heroku - Router Connection Errors (H13 or H15 or H18)` | Detects H13 (connection closed without response), H15 (idle connection timeout beyond the router's patience), and H18 (server interrupted an in-progress response) errors. These codes often appear in the minutes before a full dyno crash and serve as early warning indicators. | Warning | Count >= 3 | +| `Heroku - Router Connection Errors (H13 or H15 or H18)` | Detects H13 (connection closed without response), H15 (idle connection timeout beyond the router's patience), and H18 (server interrupted an in-progress response) errors. These codes often appear in the minutes before a full dyno crash and serve as early warning indicators. | Critical | Count >= 5 | + ## Upgrade/Downgrade the Heroku app (Optional) import AppUpdate from '../../reuse/apps/app-update.md';