Configuring Observers for Downtime Notifications on Production Websites
Downtime is expensive. Every minute your production website is unreachable is a minute of lost revenue, frustrated customers, and shaken trust. The good news is that Apphold makes it straightforward to put observers in front of every critical endpoint so you hear about problems before your users do.
In this guide we’ll walk through how to configure observers, choose the right check type, and wire them into notification channels so the right people are alerted at the right time.
What Is an Observer?
An observer in Apphold is a recurring check that watches a single target — typically a URL, hostname, or TCP port — and records whether it responds the way you expect. Each observer runs on its own schedule, evaluates the response, and emits an event when something looks wrong.
Observers are the foundation of every alert: without an observer watching it, an outage will simply go unnoticed.
Step 1: Pick the Right Check Type
Apphold ships with several observer types. Choose the one that matches what “up” actually means for your service:
- HTTP(S) check — Verifies that a URL returns the expected status code (usually
200). Use this for marketing sites, dashboards, and public APIs. - Keyword check — Like an HTTP check, but also asserts that a specific string appears (or does not appear) in the response body. Great for catching “soft” outages where the server returns
200but renders an error page. - Ping check — Sends an ICMP echo request. Useful for verifying that a host is reachable at the network level.
- Port check — Opens a TCP connection to a specific port. Ideal for databases, mail servers, and other non-HTTP services.
A good rule of thumb: use a keyword check for anything user-facing, because it catches misconfigured proxies and broken deploys that a plain status-code check would miss.
Step 2: Create the Observer
From the Apphold dashboard:
- Go to Monitors → New Observer.
- Give the observer a clear, descriptive name (e.g.
apphold.org — Homepage). - Pick the check type and enter the target URL or host.
- Set the interval — how often the check should run. For production sites, every 1–5 minutes is a sensible starting point.
- Configure the timeout (typically
10–30s) and the number of retries before the observer is considered down. Two or three retries help avoid noisy alerts caused by transient blips. - For keyword checks, enter the string to look for and whether its presence or absence indicates a healthy response.
Save the observer and Apphold will start collecting data immediately.
Step 3: Define Notification Channels
An observer is only useful if its alerts reach a human. Under Settings → Notification Channels, add the channels your team already uses:
- Email — The simplest channel; good as a baseline.
- Webhook — POSTs the event payload to any URL. Use this to fan out to PagerDuty, Opsgenie, or your own incident tooling.
- Slack / Discord — Sends formatted messages to a chosen channel via incoming webhooks.
- SMS — For high-severity, can’t-miss-it alerts.
Each channel can be tested with a sample payload before you attach it to anything real.
Step 4: Attach Channels to the Observer
Open the observer you just created and switch to the Alerts tab. Here you can:
- Choose which channels receive notifications.
- Decide when to notify — for example, only after the observer has been down for two consecutive checks.
- Configure recovery notifications so you also get a message when the service comes back up.
- Set quiet hours or escalation rules if you want different on-call behaviour out of business hours.
If you run multiple observers for the same service (e.g. one HTTP check and one keyword check), attach them to the same channel group so a single incident produces one coherent stream of alerts rather than a flood.
Step 5: Verify End-to-End
Before you trust your new setup in anger, verify it:
- Temporarily change the observer’s expected status code or keyword to something that will fail.
- Wait for the next check interval and confirm an alert lands in every channel.
- Restore the original configuration and confirm a recovery notification arrives.
Document the test in your runbook so future team members know the alerting pipeline is real and tested.
Tips for Keeping Alerts Useful
- One observer per concern. Don’t bundle “homepage”, “checkout”, and “API” into a single check — you’ll lose the ability to triage quickly.
- Tune retries and intervals together. A 1-minute interval with three retries means you’ll learn about an outage within roughly 3 minutes — usually a good balance between speed and noise.
- Use keyword checks generously. They catch a whole class of “200 OK but actually broken” failures that status-only checks ignore.
- Review noisy observers. If an alert fires often without a real incident, fix the check (or the underlying flakiness) — never silence it and forget.
- Pair with status pages. Apphold can publish observer state to a public status page so customers can self-serve when something is wrong.
Wrapping Up
With a handful of well-tuned observers and the right notification channels, you’ll know about production downtime within minutes — often before your users notice. Start with the most critical user journeys, layer in keyword checks for depth, and grow your coverage from there.
If you’re not running Apphold yet, spin up the demo instance to try observers and alerting hands-on, or follow the Installation Guide to self-host.
Questions or feedback? Reach out at info@apphold.org or join the Discord community. Stay up!
Need Professional Help?
Get custom development, managed hosting, data migration, and technical support — directly from the creators of Apphold.
Explore Premium