Glossary
Synthetic monitoring
Synthetic monitoring is running scripted transactions against a service on a schedule, so a broken journey is found before a real user meets it.
Also called Synthetics, Scripted checks, Synthetic transaction monitoring.
A synthetic transaction is a scripted imitation of something a user does: sign in, search, add to basket, check out. It is synthetic because it is generated on a schedule by you rather than by a customer, so it runs at 3am on a Sunday exactly as it runs at noon. Synthetic monitoring is running those transactions continuously and reporting whether each one completed, how long it took, and at which step it failed.
Its value is that it tests the thing customers actually do. A checkout can be broken while every endpoint it depends on returns 200, because the breakage is in how they fit together. Synthetics are also the only way to have a signal at all for a flow nobody is currently using — a signup path that breaks at 3am is discovered at 3am rather than at 9am by the first customer to try it.
There are two kinds, and they fail differently. Browser synthetics drive a headless browser through the real pages, clicking and typing, so they catch a broken button or a front-end script error that no API call would see; they are also the slowest and most brittle kind. API synthetics chain HTTP calls the way the front end would, passing a token or an ID from one step to the next. They are cheaper to run and far less brittle, and blind to anything that only breaks in a browser.
The cost is maintenance and false alarms. Scripts break when the UI changes, and a synthetic that fails because a button moved is indistinguishable at the alerting layer from one that fails because checkout is down. The usual discipline is to keep a small number of scripts covering the journeys that make money, run them less often than simple checks, and treat them as production code that gets reviewed.
| Check | What it runs | What it catches | What it misses |
|---|---|---|---|
| Uptime check | One request to one URL | The site being down, slow or returning an error | A broken journey behind a page that loads |
| API synthetic | A script of chained HTTP calls | A broken sign-in, search or checkout API | Anything that only breaks in a browser |
| Browser synthetic | A headless browser clicking through pages | A broken button, form or front-end script | Problems on real devices and networks |
| Real user monitoring | Measurements from visitors' browsers | Slowness and errors real users hit | Anything while nobody is visiting |
Questions
What is synthetic monitoring?
Running a scripted transaction, such as signing in or checking out, against a service on a schedule, and alerting when it fails. It finds a broken journey even when no customer is using the service.
What is a synthetic transaction?
A scripted sequence of steps that imitates what a user does, run by a monitor rather than a person. Signing in with a test account and loading the dashboard is a synthetic transaction. It is called synthetic because the traffic is generated, not real.
What is the difference between synthetic monitoring and real user monitoring?
Synthetic monitoring generates its own traffic on a schedule, so it works when nobody is visiting and can tell you a flow is down. Real user monitoring measures the visitors you actually have, so it shows what the service is like to use on real devices, and it sees nothing when there is no traffic.
Is synthetic monitoring the same as uptime monitoring?
Not quite. An uptime check makes one request and asks whether it succeeded, which makes it the simplest synthetic check there is. A synthetic check usually runs several steps and asks whether the whole journey worked, which catches failures in how the parts fit together.
How often should synthetic checks run?
Less often than simple uptime checks. Every 5 to 15 minutes is common for a journey that makes money, because each run costs more and a brittle script that fails often wakes people for nothing. Uptime checks on the same service can run every minute.
Uptimely's Synthetic monitor runs a fetch() script you write, with no browser, so a multi-step API journey is checked on a schedule alongside your uptime checks.
Start monitoring free →Read next
Product feature
Part of the Uptimely monitoring glossary — plain definitions of the vocabulary uptime monitoring, incident response and status pages are discussed in. Something here read wrong to you? Email support@getuptimely.com.