Reading Your Own Analytics to Schedule Uptime Checks Before Traffic Peaks

GhostHosts editorial ·

rack OE16 at the "esams" data center in Haarlem near Amsterdam, part of toolserver operated by Wikimedia Deutschland. November 2011. Imported from wikitech. http://wikitech.wikimedia.org/view/OE16 (own work)
Illustrative image. Mutante · CC BY-SA 3.0 · Cropped and resized. Image source

Most uptime checks are configured once, usually with default settings, and then forgotten. The default might probe your homepage every five minutes from one location, which tells you very little about whether the site works when a real visitor arrives at a busy hour from a particular region. A better starting point is your own traffic history. Before you decide how often to probe, where to probe from, or when an alert should wake someone up, look at when people actually visit and what they do once they arrive. This article walks through a method small technical teams can use with the analytics they already have, along with the questions to ask before you commit to a monitoring setup.

Start With the Traffic You Already Have

Open whatever analytics tool your site already reports to. You do not need a new product to begin. Pull at least four to six weeks of data so that one unusual week, such as a product launch or a holiday, does not dominate your picture. Look at sessions by hour of day and day of week, using the time zone that matches your audience rather than the server's time zone. A site whose visitors are mostly in one country will show a clear daily curve, and that curve is the foundation for every other decision in this article.

Note the shape, not just the totals. A flat line of modest traffic around the clock calls for different monitoring than a sharp spike at lunchtime followed by a long quiet afternoon. Write down the two or three hours each week when traffic is highest and the hours when it is nearly zero. These are the windows that matter most for detecting outages that real people would feel.

Separate Peak Windows From Quiet Windows

Once you know your peaks, decide what a failure means in each window. During a peak, a five-minute outage may affect dozens of people who were trying to buy something or sign up. During a quiet period, the same outage might affect almost no one, but it could still matter for scheduled jobs, email delivery, or search crawlers that visit overnight. Those are different risks, and they justify different probe frequencies.

A practical pattern is to probe more often during peak windows and less often during quiet hours, while keeping at least a baseline check running around the clock so that you learn about problems regardless of when they start. Be cautious about inventing precise numbers without testing them. Instead, choose a cadence that your team can actually respond to, and adjust it after a few weeks of observed alerts.

Choose Probe Locations From Visitor Geography

Analytics also tell you where visitors come from. If most of your audience sits in two regions, a probe running only from a single distant location can produce misleading results. It may report a slow or failed response caused by the network path between that location and your server, not by anything wrong with your site as your visitors experience it. Conversely, if you only probe from locations close to your server, you may miss latency that affects visitors elsewhere.

Compare the geographic breakdown in your analytics with the probe locations your monitoring tool offers. Where possible, match at least one probe to each major audience region. Before relying on any single location, ask how the tool handles a failure from one probe that other probes do not see, and whether you can require agreement from more than one location before an alert fires. Those questions matter more than the marketing claims on any vendor page.

Decide What Each Check Should Actually Test

A check that only confirms the server returns a 200 status code can pass while the site is effectively broken, for example when a login form returns an error page with a success code. Use your analytics to identify the pages that receive the most traffic and the pages where visitors take important actions. Build checks around those pages. If analytics show that a large share of sessions land on a blog article and then leave, a simple homepage and article check may be enough. If sessions move from a product page to a form, test the form path as well.

Keep the number of checks manageable. Each additional check is one more source of alerts that someone has to triage. Start with three to five checks that map to real visitor paths, and expand only after you have reviewed a few weeks of results.

A Short Checklist Before You Set Alert Rules

Before you finalize alert thresholds and routing, answer these questions in writing. Which two or three hours carry the most traffic, and in which time zone? Which regions produce most of your visitors, and do your probes cover them? Which pages or actions matter most, and does each have a check? What is the smallest failure you would want to know about immediately, and what can wait until morning? Who receives each alert, and what do they do first? Is there a named backup person when the primary does not respond?

Write the answers down and revisit them after each month of real alerts. Many small teams find that their first configuration produced too many noisy alerts during quiet hours and too few during peaks. The analytics review is the fastest way to correct that imbalance.

Review the Results and Adjust

Monitoring is not finished when the checks are switched on. Set a recurring review, perhaps monthly, to compare alert history with traffic history. Ask whether any real visitor-impacting problem went undetected, and whether any alert fired without anyone being affected. Adjust probe frequency, locations, and paths based on what you learn. Over time your monitoring should reflect how your site is actually used, not how it was used when someone first configured it. That alignment is what makes uptime checks useful rather than merely present.