Skip to main content
AG·SORA
Technology

Monitoring and Uptime for Business Websites and Apps: Knowing There Is a Problem Before Customers Complain

Published 12 min readWritten by agsora.tech
AG·SORA / BLOGAG·SORATechnologyMonitoring and Uptime forBusiness Websites and Apps:Knowing There Is a ProblemBefore Customers Complainagsora.tech
In this article

Many business owners only find out their website or app has a problem from a customer. A message arrives asking why the payment page will not open, or an employee reports that the till system has been slow since morning. By then the loss is already running: orders lost, queues lengthening, and trust thinning. The question is not whether a system will ever have a problem, but how quickly you learn of it and how ready you are to handle it.

Monitoring is the practice of continuously observing a system's health so problems are detected before customers complain. Many people think monitoring is only for large companies with full technical teams. In reality, small and medium businesses can also set up basic monitoring at a reasonable cost, and the benefit is often felt more because there is no large team on watch.

This article covers how to design realistic monitoring for business websites and apps. We discuss what to watch, types of checks, alerts that do not cause fatigue, status pages, error tracking, incident handling, and habits that keep a system healthy. We use no invented figures about availability percentages; what we offer are principles and a checklist you can apply to systems of various sizes.

Summary

  • Monitor from the user's point of view: do important flows such as sign in, search, and payment really work
  • Start with a few simple checks on the things that hurt most when down, rather than watching everything
  • Set alerts to be rare but meaningful, with a clear recipient and action
  • Record errors and event traces so the cause can be traced, not guessed
  • Prepare a simple incident procedure and learn from each event so it does not recur

Why monitoring is not a luxury

Every system that depends on servers, networks, third party services, and constantly changing code will occasionally suffer a disruption. A security certificate expires, storage fills up, the payment provider has trouble, or the latest update carries an error that slipped past testing. All of this is normal. What is not normal is finding out hours later.

The impact of a disruption is hard to measure precisely because it depends on the time of day, the kind of business, and the duration. But the logic is simple: every minute an online store cannot take orders is a potentially lost sale, and every minute an internal app is down is wasted staff time. Monitoring shortens the gap between event and response, and that gap decides the size of the loss.

Other benefits are less visible but real. Monitoring data shows patterns: pages that slow down at every month end, a server that runs out of memory every few days, or a third party service that fails often. Patterns like these allow permanent fixes rather than putting out the same fire again and again.

A server rack with neatly arranged network cables
Behind every page that opens are servers and networks that need to be observed, not merely trusted.

What actually needs monitoring

The biggest temptation is to monitor everything at once and then drown in charts and alerts nobody reads. Start with a simple question: what hurts most if it goes down? For an online store the answer is usually the home page, product pages, cart, and payment. For an internal app it might be sign in, transaction recording, and the daily report.

From there, monitor at several layers. The first layer is availability: can the service be reached and does it answer correctly. The second is speed: how fast do pages and important processes complete, because a very slow system is as bad as a dead one. The third is infrastructure health: processor use, memory, storage space, and database connections. The fourth is application errors: exceptions and faults experienced by real users.

  1. 01Availability: main pages and service endpoints respond with the correct status
  2. 02Speed: page load time and processing time for important flows
  3. 03Infrastructure: processor, memory, storage space, and database connections
  4. 04Application errors: faults experienced by users and scheduled tasks that fail
  5. 05Dependencies: payments, email sending, and other third party services the system uses
  6. 06Basic security: certificate expiry, domain, and suspicious sign in attempts

Third party monitoring is often forgotten. Many incidents come from services you do not own, such as the payment provider, a maps service, or a message sender. You cannot fix them, but you can detect and prepare a response, for example showing customers an honest message or offering an alternative payment method.

Checks from outside and from inside

There are two ways to look at a system. Outside checks imitate a user: a service calls your pages from various locations at intervals and confirms the result is right. Its strength is that it sees what users see, including network, DNS, and certificate problems that are invisible from inside the server. Its weakness is that it does not know the cause.

Inside checks observe the system's own state: server load, job queues, database size, and logs. They help explain why something happened, and even predict before it does, for example when storage keeps shrinking. The combination is strongest: outside checks tell you something is wrong, inside checks help find why.

Checking flows, not just pages

A home page that opens does not prove the store can sell. Systems often fail deeper down: search returns no results, the add to cart button fails, or payment rejects every transaction. Flow checks, or synthetic checks, run simple scenarios such as signing in, searching for a product, and adding it to the cart, then confirm each step succeeds. For anything involving money, use the payment provider's test mode so no real transaction occurs.

Run flow checks at sensible intervals, for example every few minutes for the most important flows and less often for others. Too frequent loads the system and produces unneeded data, too rare makes detection late. Make sure checks do not pollute real data, for instance by using clearly marked test accounts.

Alerts that do not cause fatigue

Alerts are where monitoring meets people, and this is where many systems fail. Too many alerts lead people to ignore them, so the truly important ones are missed. The principle is simple: every alert must be worth waking someone for, and must have a clear action.

  • Alert only on conditions that affect users or are about to
  • Set sensible thresholds and duration conditions, such as failing several times in a row, so momentary blips do not trigger alarms
  • Distinguish severity: what must be handled now, what can be reviewed tomorrow morning, and what is merely logged
  • Send to a channel that is actually read, and decide the primary recipient and a backup
  • Include context in the message: what failed, since when, and a link to the handling guide
  • Review alerts periodically and remove or fix those that often fire without action

Prepare an escalation mechanism too. If the first recipient does not respond within a set time, the alert passes to the next person. For a small team that is not on watch around the clock, honestly decide the service hours you can promise, and tell stakeholders. A realistic promise is better than an on call roster that is never actually followed.

A good alert can be acted on

If an alert arrives and its recipient asks what to do, the alert is not finished being designed. Every alert needs to point to a clear first step.

Recording errors and event traces

Knowing that something is broken is only half the job. The other half is knowing why. For that you need records: application logs that capture important events, and error tracking that collects exceptions with their context, such as the page opened, the app version, and the steps the user took before the fault.

Record in a structured and consistent way. Logs that are random lines of text are hard to search, while logs with clear fields, such as time, severity, module, and a request reference number, allow quick filtering. A request reference number shared across every layer helps trace one transaction from the user's screen to the database.

Protect privacy. Do not record passwords, card numbers, or unnecessary personal data in logs, because logs are often read by many people and kept for a long time. Set a sensible log retention period and limit who may access them. The personal data protection rules currently in force are worth checking to make sure your logging practice complies.

A screen showing a metrics panel with small line charts and performance figures
Charts are useful only if someone knows which number signals a problem and what to do afterwards.

Monitoring speed from the user's side

A healthy server does not guarantee a fast experience. A user on a phone with a slow network, oversized images, or heavy third party scripts can find a page painful even if the server has no problem. So besides server metrics, watch the real user experience: how quickly the main content appears, how quickly the page becomes usable, and how stable the layout is.

Collect data from real users where possible, because real conditions vary widely. Group by device type, network, and page to see which part is the problem. A sudden change after an update is a strong clue that something new caused a slowdown, and this data makes the decision to roll back easier.

Status pages and communication during disruption

When a disruption happens, how you communicate determines how much trust remains. Customers forgive a system that is being repaired and constantly updated far more than one that stays silent without explanation. A simple status page, hosted separately from the main system so it can still be opened when the main system is down, shows the current state and the history of incidents.

Write updates in honest language that is not overly technical: what is affected, what is being done, and when the next update will come. Do not promise a recovery time you cannot be sure of. Once recovered, share a short summary of what happened and what was changed so it does not recur.

Prepare temporary messages in the app or site for the affected part too. Customers who see a clear message about payments having trouble and the alternatives available will be more patient than those who meet a failure with no explanation. Practising writing such messages before they are needed saves a lot of time under pressure.

Handling incidents calmly

When a system has a problem, panic is the enemy. A simple, agreed incident procedure lets the team move in an orderly way. It comes down to a few things: who leads the response, who communicates with customers, how decisions are made, and where the record of events is kept.

  1. 01Confirm the problem and assess the impact: who and what is affected
  2. 02Appoint one person to lead and one to communicate
  3. 03Restore service first, for example by rolling back the last update, before looking for the root cause
  4. 04Record the timeline: times, actions, and results, while still fresh
  5. 05Give regular updates to the affected parties
  6. 06After recovery, review without blame and set concrete fixes

A postincident review is one of the most valuable habits. Its purpose is not to blame people but to understand how the system and processes allowed the error. The result is a list of specific fixes, such as adding a check that was missing, improving a guide, or changing how updates are deployed. Without it, the same incident will come back.

Safe updates and maintenance

Most disruptions do not come from outside but from changes we make ourselves. Code updates, configuration changes, and database migrations are very common causes. So monitoring must connect with the deployment process: mark on the charts when an update was made, so a spike in errors can be tied immediately to a change.

Roll out updates gradually where possible, for example to part of the users first and then widen if healthy. Prepare a fast, tested way to roll back. Avoid deploying big changes at the busiest time or just before a weekend when nobody is on watch. Schedule maintenance in quiet hours and announce it beforehand.

Tie this to your backup strategy as well. Good monitoring also checks that backups run and, more importantly, that the results can actually be restored. A backup never tested is an assumption, not a guarantee. Test restoration regularly and note the time it takes.

Choosing tools to fit the scale

There is no single tool set that suits everyone. For a small business, a simple combination is often enough: an external availability check service, error tracking for the application, and basic server metrics from the hosting provider. As you grow, add centralised logging, application performance monitoring, and fuller flow checks.

  • Pick tools your team can actually run and read, not the ones with the most features
  • Watch for costs that can balloon with data volume, especially for logs and metrics
  • Make sure alerts can be sent to the channels the team uses daily
  • Check where monitoring data is stored and who can access it
  • Avoid a single dependency: the monitoring service should not run on the same infrastructure it monitors
  • Document the monitoring configuration so it does not depend on one person's memory

If your business uses a vendor to build and maintain systems, ask what is monitored, how alerts are sent, and who responds outside working hours. This should be written into the maintenance agreement, including the promised response times, not merely spoken.

Setting realistic targets

Many businesses want a system that never goes down, but that demand is expensive and rarely necessary. It is more useful to set targets that fit the business impact. A shop till system open every day may need high availability and a fallback way of working when the internet drops, while an internal reporting portal may tolerate a short gap outside working hours.

State targets in language everyone understands: how long the system may be down before the business is disrupted, and how much data may be lost. Those two questions determine the monitoring, backup, and architecture strategy. The tighter the target, the greater the cost and complexity, so each improvement must be worth the value it protects.

Common mistakes to avoid

  • Checking only the home page so breakage in payment or search goes undetected
  • Sending so many alerts that all are ignored
  • Hosting the status page on the same system being monitored
  • Logging sensitive data without access limits and retention periods
  • Never testing backup restoration
  • Skipping postincident reviews so root causes are never fixed

First steps you can start this week

  1. 01List three to five flows that hurt most when down, for example sign in, search, cart, and payment
  2. 02Set up external availability checks for those flows and monitor certificate and domain expiry
  3. 03Install error tracking on the app and decide who receives its alerts
  4. 04Write a one page incident procedure: who leads, who communicates, and the first recovery steps
  5. 05Schedule a backup restoration test and record the result

Closing

Monitoring is not about avoiding every disruption but about knowing sooner, understanding better, and recovering more calmly. Checks from the user's point of view, meaningful alerts, tidy records, honest communication, and the habit of learning from each incident make a system stronger over time.

Start small with what hurts most when down, then grow as the business grows. That way you no longer depend on customers to tell you something is wrong.

Want systems that are well monitored and maintained after launch?

The AG·SORA team builds websites and apps complete with monitoring, error tracking, and clear maintenance procedures. The first consultation is free and without obligation.

Free consultation

Free checklist: choosing a software house

24 points to evaluate a vendor before you sign. Can be saved as a PDF.

Get the checklist

Ready to build a system that grows with your business?

Discuss your needs with the AG·SORA team, no cost, no commitment.