William

William Β· Talent Sourcing Expert Β· October 10, 2026

How to Set Up Monitoring for a Web Application in 6 Steps

Set up monitoring for a web app: cover with a monitoring badge and a tilted capture of a monitors dashboard showing one site up at 100 percent uptime with a live status card

Key takeaways

  • β†’A monitor needs four things: a name you will recognise in an alert, a type, a URL that matches the type, and a check interval.
  • β†’Email and chat alerts fire only on status transitions, up to down and down to up, so a long outage sends one message rather than hundreds.
  • β†’Run the first check by hand. Until a monitor leaves Pending it has checked nothing, and the first run is also your latency baseline.
  • β†’For APIs, move the response keys you care about into Selected. A 200 response with a broken payload passes an uptime check and fails a content check.
  • β†’The check interval is also your worst-case detection delay: on a ten-minute interval an outage can run almost ten minutes before anything notices.

You can find out that your application is down in two ways. A dashboard tells you within minutes. Or a customer emails on Monday morning, asking why they could not check out on Saturday night. What separates those two is a monitor, and for a single web app it takes about fifteen minutes to set one up.

Starting from zero monitors, this guide follows the whole sequence on a monitoring dashboard: creating the first one, deciding who gets alerted and when, running the first check by hand, validating what an API actually returns instead of only whether it answers, reading the stored result of a failed check, and setting the account defaults once so you do not have to repeat yourself on every monitor after that.

Tools use different field names. The sequence stays the same, and so do the decisions, which are the part worth getting right. The audience here is whoever owns the app, not a dedicated operations team, so nothing below assumes an on-call rotation is already in place.

Step 1: create the monitor with a name, a type, a URL and an interval

Four pieces of information are required for a monitor. The rest of the creation form is optional, and most of those fields only show up after you choose a type.

  1. Name it for the alert, not for the list. This name will reach you in a notification, out of context and probably on a phone. "Checkout API, production" is useful. "Monitor 4" is not.
  2. Select the monitor type. Website for an HTML page, API for a JSON endpoint, image for an asset you serve from a CDN. The type decides which validation options the form offers further down, so it is worth getting right the first time.
  3. Enter the URL that matches the type. Use the full address with the http:// or https:// scheme. Point a website monitor at a JSON endpoint and it will run happily while telling you nothing useful.
  4. Set the check interval in minutes. On the form shown here the default is ten. The help text under the field describes the whole behaviour: after the interval, the monitor is checked automatically.
  5. Leave Autocheck enabled. With it disabled, the monitor only ever runs when you press Run yourself. That is handy while you are still configuring it, and useless once it is live.
  6. Click Proceed. Before you can save, the URL gets validated, so a typo shows up here instead of turning into a permanently red monitor tomorrow.

Before accepting the default interval, consider this: it is also your worst-case detection delay. With a ten-minute interval, an outage starting thirty seconds after a successful check goes on for nearly ten minutes before anything notices. Tighten the interval on the paths that take money. Leave the marketing pages alone.

Monitor creation form with Monitor Type set to Website, a filled URL field, Set Interval in minutes at 10, Autocheck Enabled, and a Proceed button next to the note that the URL will be checked for validity
Four fields make a monitor. Proceed validates the URL before the form will let you save.

Step 2: decide who gets the alert, and when it fires

In Alert Configuration, type an email address and press Enter; it turns into a chip below the field. Do the same for each recipient. An empty field does not mean nobody is told, because the default address from the account settings is used instead (step 6 covers it).

The line under that field is the most important sentence on the page, and the one most people skim past: emails are notified on status changes, up to down or down to up. Not on every check. Not on every failure. Only on the transition.

Two consequences follow from that, and both of them matter more than the setup itself.

  • A long outage sends one email, not hundreds. One message arrives when the service goes down, and another when it comes back. Your inbox gets through a six-hour incident.
  • A flapping service is loud, and should be. When something drops and recovers every few minutes, each cycle generates two transitions. Relentless mail means the signal is real, since intermittent failures are usually worse than clean ones and harder to reproduce.

The same transition rule applies to chat notifications. Routing alerts into a team channel changes the destination, not the volume.

Just above Alert Configuration sits the Authentication section, and it is not optional for anything behind a login. A monitor hitting a protected URL with no credentials gets a 401 and reports down forever, which at least is obvious. The nastier outcome is a login wall that returns a cheerful 200, in which case the monitor reports up while the application behind it is broken.

Alert Configuration section of the monitor form with an Alert Email Addresses field reading Type email and press Enter, two recipient chips added below it, and an Authentication section with a Select Auth Type dropdown above
Recipients are per monitor. Alerts fire on transitions only, up to down and down to up.

Step 3: run the first check before you trust the schedule

Save Monitor adds a row to the dashboard. That row is honest about what it knows: status Pending, uptime 0%, latency N/A, last check Never. No check has run yet. The monitor exists, and that is all.

Click Run. A confirmation toast pops up and a live status card slides in with the monitor name, its latency and its type, while the row updates in place: status Up, uptime, latency in milliseconds, last check a few seconds ago. This round trip is the real test. It is also why you do it by hand instead of waiting for the interval to come round.

The manual run tells you three things the configuration form cannot:

  1. The URL, the credentials and the validation all work together. Any one of them can be right alone and wrong in combination.
  2. What normal latency looks like. Your baseline is that first measurement. Without it, a slow response next month is only a number.
  3. That the monitor leaves Pending. Once you have set up several at a time, filter the dashboard by Pending. Anything still sitting there never ran, and a monitor that never ran monitors nothing.

Once you have more than a handful, group them into collections. Monitors you have not assigned appear under Uncollected Monitors, which is a reasonable staging area and a poor permanent home. Splitting by environment is the usual first cut, and it is worth pointing monitors at your staging environment too, so a broken release is caught before it reaches production traffic.

Monitors dashboard after a manual run, showing a check executed successfully toast, a green Monitor Up status card with latency and type, and a table row with status Up, 100% uptime, 4287ms latency and a last check 6 seconds ago
The row only becomes meaningful after the first run: status, uptime, latency and last check.

Step 4: validate what the API returns, not just that it answered

You start an API monitor the same way, with a name, a type and the http or https URL of the endpoint. Here, though, Proceed behaves differently. Rather than only validating the address, it calls the endpoint, retrieves a live response and parses it, so you can say what a healthy answer looks like.

You get two columns. Available, on the left, lists every key the tool found in the response; Selected, on the right, holds the ones that will be checked. Move the keys that matter across. Every check validates those selected keys, and they decide its status. A free-text field also lets you add a word or sentence the response must contain, which is the fallback when the shape of the payload is not helpful.

That is the entire case for an API monitor over a plain uptime check. An endpoint returning HTTP 200 with a body that says the service is degraded will pass an uptime check and fail a content check. The status code tells you the web server is alive. Whether the product works is what the payload tells you.

Pick stable keys. A good signal is a field present on a healthy response and absent or different on a broken one. By contrast, a field that only shows up when there is data in the system will page someone at 3am the first quiet night. If the endpoint needs a token or a key, fill in the Authentication section before saving, then save and run it once, exactly as in step 3. The natural next move is wiring these checks into your deployment pipeline as a post-release step, since the response shape is most likely to change on the day you ship.

API monitor validation screen with an Available column listing the keys clients and timestamp, a Selected column listing status and onlineUsers with remove icons, an Add word or sentence field, and an Authentication section below
Keys moved into Selected are validated on every check and decide whether that check passed.

Step 5: read the history when something looks wrong

Alerts say that something changed. History says what happened, and it is the half of monitoring that people set up and then never open until the first incident.

On a monitor row, the History button opens its check statistics together with the recent checks. Each row in there has a View Details link, which is where the stored evidence is kept: status, HTTP status code, latency and the exact time the check ran.

What sits below the header depends on the monitor type.

  • Website monitors keep the response in three forms. Summary gives you the page title and the extracted page text, Page preview renders what the checker saw, and Raw HTML is the unprocessed document. The panel states explicitly that very large responses are truncated.
  • API monitors keep the response data, plus a Show raw JSON toggle for when you need the unformatted payload.
  • Metadata on both includes the check ID and the monitor ID. Paste those identifiers into a ticket, rather than a screenshot and an approximate time.

A log across every monitor exists too. It shows the total checks in the last 24 hours, how many succeeded, how many failed and the resulting success rate, plus a table that lists each check with its HTTP status and latency and updates in real time.

The payoff is concrete. If somebody says the site was slow yesterday afternoon, the latency column settles it in about ten seconds. For a failed check, the stored response tells you whether it was a 500, a timeout, or a page that rendered an error message and returned 200 anyway, the failure mode that uptime percentages hide.

Check Result Details panel showing status success, HTTP status 200, latency 4287ms and a timestamp, with Summary, Page preview and Raw HTML tabs open on the captured page title and page text, and a note that the response was truncated
Every check keeps its own evidence: status code, latency, and the response the checker received.

Step 6: set the account defaults once

Four settings deserve five minutes now, instead of being rediscovered during an incident.

  • Default alert email. This address receives alerts from every monitor unless that monitor names different recipients. Point it at a shared inbox or an alias rather than a personal address: people change roles and leave companies, aliases do not.
  • Recovery alerts. One checkbox controls whether you are told when a monitor comes back online. With it on, you get both edges of every incident, including the one telling you it is over. Turn it off and only failures reach you, which the setting itself notes is the quieter option.
  • Latency mode. Switch the display between milliseconds and seconds. Milliseconds for APIs, where the differences that matter are small; seconds for pages, where they are not.
  • Language. Set once per account.

None of this affects what is monitored. Instead, it changes how much of your attention each alert costs, and over a year that is what decides whether anyone still reads them.

Settings page with a Default Alert Email field noted as receiving alerts from all monitors unless overridden, a checked box for sending recovery alerts when monitors come back online, a Latency mode dropdown set to Milliseconds, and a Language preference dropdown
Account defaults: the fallback recipient, recovery alerts, the latency unit and the language.

Mistakes that make monitoring useless

  • Monitoring only the homepage. That is usually the most cached, most static page you own. It stays green while login, checkout and the API behind them are all broken.
  • Leaving monitors in Pending. On the dashboard they look configured, yet they check nothing. After any batch of setup work, filter by Pending.
  • Skipping the Authentication section on a protected URL. In the best case, the monitor is permanently red and you stop reading it. Worst case, a login page returns 200 and the monitor is permanently, wrongly green.
  • Validating an unstable key. When the field only appears if there is data, the monitor is measuring your traffic, not your uptime.
  • Sending every alert to one personal inbox. That works right up to the moment the person is on a plane.
  • Editing a monitor and not running it. Nothing gets re-checked when you change a URL, a credential or a validation key. The last result on screen still describes the old configuration.
  • Treating a tight interval as free. If you check everything every minute, each deploy blip becomes a transition, and transitions are exactly what send mail.

Check what stuck

6 questions on the brief you just read. Pick one answer per question.

  1. 1. When does an email or chat alert actually fire?

  2. 2. A monitor you just saved shows status Pending, 0% uptime and last check Never. What does that mean?

  3. 3. On an API monitor, what do the keys you move into the Selected column do?

  4. 4. Why fill in the Authentication section for a URL behind a login?

  5. 5. What does the check interval also determine, besides how often the check runs?

  6. 6. A monitor has no alert email addresses of its own. Who is notified when it goes down?

Score: 0 / 6

Fifteen minutes now, or a customer email on Monday

It is a short sequence. Name and type the monitor, point it at the right URL with a sensible interval, decide who hears about it (and remember that only transitions send mail), run the first check by hand, validate the response body rather than the status code alone, and set the account defaults once. Step 5 is the work that pays off later: the first time something breaks, you will want the stored response, not a notification that something broke.

Begin with the paths that take money or lose customers. Get those green and trusted, then widen. If nobody on the team owns this once it is running, our vetted network can staff it: start with hiring DevOps engineers and specify which services need watching.

Frequently asked questions

How often should a web application be checked?

Work backwards from how long an outage can go unnoticed, because the interval is also the worst-case detection delay. A ten-minute interval, the default on the form shown here, means a failure starting just after a successful check runs for nearly ten minutes before the system sees it. That is fine for a documentation site and expensive for a checkout flow. Tighten the interval on the paths that take money and leave low-stakes pages on a longer one. Checking everything at the shortest interval available is not free either: more checks means more opportunities for a brief blip to register as a status change, and status changes are what send email.

Why am I not getting an email for every failed check?

Because alerts are sent on status transitions, not on checks. You get an email when the monitor goes from up to down, and another when it goes from down to up. During a six-hour outage, every check in between fails and none of them sends mail. That is deliberate, since it keeps a single incident to two messages. The per-check record is all stored in the history, where each check keeps its own status, HTTP code, latency and response data.

What is the difference between a website monitor and an API monitor?

A website monitor fetches a page and stores what came back: the page title, the extracted text, a rendered preview and the raw HTML, with very large responses truncated. An API monitor fetches the endpoint and parses the response, then lets you select which keys are validated on every subsequent check; the result of those validations decides whether the check passed. The image monitor is a narrow case of the same idea: it fetches an image URL and previews it. Use the type that matches what you are pointing at, since the type determines which validation options the form offers.

What should I monitor besides the homepage?

The paths where failure costs something, which is rarely the homepage. Sign-in, the checkout or payment callback, and the API endpoints your frontend depends on are usually the first three. Add any third-party integration you cannot see inside; otherwise you will learn about its outage from your own users. If your interface breaks visibly without them, static assets served from a CDN are worth an image monitor. Last, point monitors at staging as well as production, so a bad release gets caught by a check rather than by traffic.

Ready to hire?

Vetted talent ready for US teams. No recruitment fees. Zero risk.

πŸ‡ΊπŸ‡Έ Trusted by companies across the United States