[{"data":1,"prerenderedAt":737},["ShallowReactive",2],{"\u002Fblog\u002Fsynthetic-monitoring-guide":3},{"id":4,"title":5,"author":6,"body":8,"category":725,"date":726,"description":727,"extension":728,"image":729,"lastUpdated":729,"meta":730,"navigation":731,"path":732,"readingTime":733,"seo":734,"stem":735,"__hash__":736},"blog\u002Fblog\u002Fsynthetic-monitoring-guide.md","Synthetic Monitoring: What It Is, How It Works, and When to Use It",{"name":7},"Vantaj Team",{"type":9,"value":10,"toc":703},"minimark",[11,19,22,27,30,49,52,56,157,160,164,167,285,291,297,300,304,307,310,378,381,385,388,393,423,428,445,450,464,473,477,480,554,557,561,564,570,576,582,588,594,598,601,604,607,614,618,621,653,656,660,665,668,672,675,679,682,686,689,693,696,700],[12,13,14,18],"p",{},[15,16,17],"strong",{},"Synthetic monitoring"," is the practice of running automated, scripted tests against your application from external locations at regular intervals. These tests simulate what a real user would do - load a page, call an API, complete a transaction - and verify that the response is correct, fast enough, and available. When a test fails, an alert fires before any real user encounters the problem.",[12,20,21],{},"The word \"synthetic\" distinguishes this from real user monitoring (RUM), which observes actual users. Synthetic tests are artificial, controlled, and repeatable. They run whether or not anyone is using your application, which makes them the primary tool for proactive detection of availability and performance issues.",[23,24,26],"h2",{"id":25},"how-synthetic-monitoring-works","How Synthetic Monitoring Works",[12,28,29],{},"A synthetic monitoring tool sends requests to your application from one or more probe locations on a schedule you configure. On each check cycle, it:",[31,32,33,37,40,43,46],"ol",{},[34,35,36],"li",{},"Sends an HTTP request (or executes a browser script) to your endpoint",[34,38,39],{},"Measures the response time",[34,41,42],{},"Validates the response - status code, response body content, certificate validity",[34,44,45],{},"Compares results against expected values",[34,47,48],{},"Alerts your team if any assertion fails",[12,50,51],{},"The key distinction from server-side monitoring: synthetic checks run from outside your infrastructure. They see exactly what an external user sees, including DNS resolution time, SSL handshake overhead, CDN behavior, and geographic routing.",[23,53,55],{"id":54},"types-of-synthetic-monitoring","Types of Synthetic Monitoring",[57,58,59,75],"table",{},[60,61,62],"thead",{},[63,64,65,69,72],"tr",{},[66,67,68],"th",{},"Type",[66,70,71],{},"What it does",[66,73,74],{},"Best for",[76,77,78,92,105,118,131,144],"tbody",{},[63,79,80,86,89],{},[81,82,83],"td",{},[15,84,85],{},"HTTP\u002FAPI monitoring",[81,87,88],{},"Sends HTTP requests and validates responses",[81,90,91],{},"API availability, status codes, response content",[63,93,94,99,102],{},[81,95,96],{},[15,97,98],{},"Browser\u002Ftransaction monitoring",[81,100,101],{},"Runs headless browser scripts simulating user flows",[81,103,104],{},"Checkout flows, login sequences, multi-step interactions",[63,106,107,112,115],{},[81,108,109],{},[15,110,111],{},"SSL certificate monitoring",[81,113,114],{},"Checks certificate validity, chain, and expiry",[81,116,117],{},"Certificate expiry prevention, chain validation",[63,119,120,125,128],{},[81,121,122],{},[15,123,124],{},"DNS monitoring",[81,126,127],{},"Queries DNS records and validates expected values",[81,129,130],{},"Domain hijacking detection, record change alerts",[63,132,133,138,141],{},[81,134,135],{},[15,136,137],{},"TCP port monitoring",[81,139,140],{},"Tests TCP connectivity to specific ports",[81,142,143],{},"Database ports, SMTP, SSH, custom services",[63,145,146,151,154],{},[81,147,148],{},[15,149,150],{},"Ping\u002FICMP monitoring",[81,152,153],{},"Checks network-layer reachability",[81,155,156],{},"Infrastructure hosts, routers, edge devices",[12,158,159],{},"Most uptime monitoring tools, including Vantaj, offer HTTP monitoring as their core synthetic check. Browser-based transaction monitoring is a more advanced form typically found in tools like Checkly or Datadog Synthetics.",[23,161,163],{"id":162},"synthetic-monitoring-vs-real-user-monitoring-rum","Synthetic Monitoring vs Real User Monitoring (RUM)",[12,165,166],{},"These two approaches answer different questions. Synthetic monitoring asks \"is the application working right now?\" RUM asks \"how did it perform for real users over the past hour?\"",[57,168,169,180],{},[60,170,171],{},[63,172,173,175,177],{},[66,174],{},[66,176,17],{},[66,178,179],{},"Real user monitoring",[76,181,182,195,208,221,234,246,259,272],{},[63,183,184,189,192],{},[81,185,186],{},[15,187,188],{},"Data source",[81,190,191],{},"Scripted bots from probe locations",[81,193,194],{},"Actual user sessions",[63,196,197,202,205],{},[81,198,199],{},[15,200,201],{},"When it runs",[81,203,204],{},"On a schedule, continuously",[81,206,207],{},"Only when users are active",[63,209,210,215,218],{},[81,211,212],{},[15,213,214],{},"Detects issues",[81,216,217],{},"Before users encounter them",[81,219,220],{},"After users encounter them",[63,222,223,228,231],{},[81,224,225],{},[15,226,227],{},"Requires traffic",[81,229,230],{},"No",[81,232,233],{},"Yes",[63,235,236,241,243],{},[81,237,238],{},[15,239,240],{},"Works at 3 AM",[81,242,233],{},[81,244,245],{},"Only if users are active",[63,247,248,253,256],{},[81,249,250],{},[15,251,252],{},"Geographic coverage",[81,254,255],{},"Defined by probe locations",[81,257,258],{},"Defined by actual user locations",[63,260,261,266,269],{},[81,262,263],{},[15,264,265],{},"Consistency",[81,267,268],{},"Highly repeatable",[81,270,271],{},"Varies with user behavior",[63,273,274,279,282],{},[81,275,276],{},[15,277,278],{},"Setup",[81,280,281],{},"Requires writing checks",[81,283,284],{},"Requires JavaScript snippet in your app",[12,286,287,290],{},[15,288,289],{},"Synthetic monitoring catches outages proactively."," If your API goes down at 3 AM on a Sunday, a synthetic check fires an alert within seconds. RUM would only detect this when users start arriving Monday morning.",[12,292,293,296],{},[15,294,295],{},"RUM captures real-world performance variance."," A synthetic check from London takes the same route every time. Real users come from different ISPs, devices, and network conditions. RUM captures that variance; synthetic monitoring doesn't.",[12,298,299],{},"The right choice for most teams: run synthetic monitoring as the primary availability and alerting layer, and layer RUM on top if you need detailed performance analytics across user segments.",[23,301,303],{"id":302},"multi-region-synthetic-monitoring","Multi-Region Synthetic Monitoring",[12,305,306],{},"Single-location synthetic monitoring has a known problem: false positives. If a probe in Virginia temporarily loses connectivity to your server, it reports a failure - even if your service is perfectly healthy from every other location. Teams mute these alerts. Then they miss the real outages.",[12,308,309],{},"Multi-region synthetic monitoring solves this by running checks from multiple probe locations simultaneously and only alerting when all regions confirm a failure. A single-region failure is a network issue at the probe. A multi-region failure is your outage.",[57,311,312,332],{},[60,313,314],{},[63,315,316,319,323,326,329],{},[66,317,318],{},"Check result",[66,320,322],{"align":321},"center","US East",[66,324,325],{"align":321},"EU West",[66,327,328],{"align":321},"AP Southeast",[66,330,331],{},"Action",[76,333,334,350,364],{},[63,335,336,339,342,345,347],{},[81,337,338],{},"Transient blip",[81,340,341],{"align":321},"Fail",[81,343,344],{"align":321},"Pass",[81,346,344],{"align":321},[81,348,349],{},"No alert",[63,351,352,355,357,359,361],{},[81,353,354],{},"Regional outage",[81,356,341],{"align":321},[81,358,341],{"align":321},[81,360,344],{"align":321},[81,362,363],{},"Alert (degraded)",[63,365,366,369,371,373,375],{},[81,367,368],{},"Full outage",[81,370,341],{"align":321},[81,372,341],{"align":321},[81,374,341],{"align":321},[81,376,377],{},"Alert (critical)",[12,379,380],{},"Vantaj runs every HTTP check from three regions simultaneously and requires multi-region consensus before opening an incident. This is the behavior that eliminates false positives at the infrastructure level, not through filtering or noise reduction after the fact.",[23,382,384],{"id":383},"what-to-monitor-with-synthetic-checks","What to Monitor with Synthetic Checks",[12,386,387],{},"Not every endpoint needs a synthetic check, but every critical path does.",[12,389,390],{},[15,391,392],{},"Check these first:",[394,395,396,399,402,405,420],"ul",{},[34,397,398],{},"Login \u002F authentication endpoint (if this fails, users can't access anything)",[34,400,401],{},"Your primary API endpoint (the most-called endpoint in your product)",[34,403,404],{},"Checkout or core conversion flow",[34,406,407,408,412,413,412,416,419],{},"Health check endpoint (",[409,410,411],"code",{},"\u002Fhealth",", ",[409,414,415],{},"\u002Fping",[409,417,418],{},"\u002Fstatus",")",[34,421,422],{},"Main domain SSL certificate",[12,424,425],{},[15,426,427],{},"Add these once the critical path is covered:",[394,429,430,433,436,439,442],{},[34,431,432],{},"Signup \u002F registration endpoint",[34,434,435],{},"Billing API",[34,437,438],{},"Webhook delivery endpoint",[34,440,441],{},"Secondary pages and subdomains",[34,443,444],{},"Documentation site",[12,446,447],{},[15,448,449],{},"Use heartbeat monitors (a form of synthetic monitoring) for:",[394,451,452,455,458,461],{},[34,453,454],{},"Cron jobs and scheduled tasks",[34,456,457],{},"Background workers",[34,459,460],{},"Data pipeline jobs",[34,462,463],{},"Database backup jobs",[12,465,466,467,472],{},"For a full prioritized list, see the ",[468,469,471],"a",{"href":470},"\u002Fblog\u002Fwhat-to-monitor-checklist","monitoring setup checklist",".",[23,474,476],{"id":475},"check-interval-how-fast-is-fast-enough","Check Interval: How Fast Is Fast Enough?",[12,478,479],{},"Synthetic checks run on a schedule. The interval determines how quickly you detect an outage after it starts.",[57,481,482,497],{},[60,483,484],{},[63,485,486,489,492,495],{},[66,487,488],{},"Check interval",[66,490,491],{"align":321},"Max detection delay",[66,493,494],{"align":321},"Median detection delay",[66,496,74],{},[76,498,499,513,526,540],{},[63,500,501,504,507,510],{},[81,502,503],{},"30 seconds",[81,505,506],{"align":321},"30 sec",[81,508,509],{"align":321},"15 sec",[81,511,512],{},"Critical endpoints, revenue-generating services",[63,514,515,518,521,523],{},[81,516,517],{},"1 minute",[81,519,520],{"align":321},"60 sec",[81,522,506],{"align":321},[81,524,525],{},"Standard production services",[63,527,528,531,534,537],{},[81,529,530],{},"5 minutes",[81,532,533],{"align":321},"5 min",[81,535,536],{"align":321},"2.5 min",[81,538,539],{},"Secondary services, non-critical endpoints",[63,541,542,545,548,551],{},[81,543,544],{},"10+ minutes",[81,546,547],{"align":321},"10+ min",[81,549,550],{"align":321},"5+ min",[81,552,553],{},"Very low-priority checks",[12,555,556],{},"The 5-minute interval that many free monitoring tools use as the default means you can miss the first 5 minutes of every outage. For a business doing $10,000\u002Fhour in revenue, that's $833 in detection delay per incident before the alert even fires.",[23,558,560],{"id":559},"assertions-checking-more-than-updown","Assertions: Checking More Than Up\u002FDown",[12,562,563],{},"Basic synthetic monitoring checks whether a URL returns a 200 status code. More complete synthetic monitoring validates what's actually in the response.",[12,565,566,569],{},[15,567,568],{},"Status code assertion:"," Confirm the expected HTTP status code. A 301 redirect where you expect a 200 indicates a routing problem.",[12,571,572,575],{},[15,573,574],{},"Response body assertion:"," Verify that expected content is present. A page that returns 200 but serves \"Error 503\" or \"Maintenance mode\" is broken even though the status code says otherwise.",[12,577,578,581],{},[15,579,580],{},"Response time assertion:"," Alert when response time exceeds a threshold. A login endpoint that normally responds in 120ms and suddenly takes 3 seconds is a problem, even if it's technically \"up.\"",[12,583,584,587],{},[15,585,586],{},"SSL certificate assertion:"," Verify the certificate is valid, the chain is intact, and expiry is more than N days away.",[12,589,590,593],{},[15,591,592],{},"Header assertion:"," Check that specific response headers are present with expected values. Useful for verifying CDN behavior, CORS headers, and security headers.",[23,595,597],{"id":596},"synthetic-monitoring-for-apis","Synthetic Monitoring for APIs",[12,599,600],{},"Synthetic HTTP monitoring is the primary method for API availability monitoring. The check sends a request with the appropriate headers and body, validates the status code, and optionally validates the response content.",[12,602,603],{},"For authenticated APIs, the check sends a valid API key or Bearer token. For POST endpoints, it sends a test payload. For GraphQL, it sends a test query.",[12,605,606],{},"A 2024 analysis of API outages found that 61% were first detected by external monitoring checks, not internal metrics or error logs. The reason: internal metrics often aggregate over time, masking brief failures. External synthetic checks catch individual failed requests within one check interval.",[12,608,609,610,472],{},"For a detailed guide to API monitoring setup, see ",[468,611,613],{"href":612},"\u002Fblog\u002Fapi-monitoring-guide","API monitoring guide",[23,615,617],{"id":616},"setting-up-synthetic-monitoring","Setting Up Synthetic Monitoring",[12,619,620],{},"The setup for HTTP synthetic monitoring is a 2-minute operation:",[31,622,623,629,635,641,647],{},[34,624,625,628],{},[15,626,627],{},"Paste the URL"," of the endpoint you want to monitor",[34,630,631,634],{},[15,632,633],{},"Set the check interval"," (1 minute for critical endpoints)",[34,636,637,640],{},[15,638,639],{},"Configure the expected response"," (status code 200, optional keyword assertions)",[34,642,643,646],{},[15,644,645],{},"Add alert contacts"," (Slack channel, email, PagerDuty integration)",[34,648,649,652],{},[15,650,651],{},"Enable multi-region checks"," to avoid false positives",[12,654,655],{},"From first URL to first alert: under 2 minutes. No agents to install, no DNS changes, no infrastructure changes.",[23,657,659],{"id":658},"frequently-asked-questions","Frequently Asked Questions",[661,662,664],"h3",{"id":663},"what-is-synthetic-monitoring","What is synthetic monitoring?",[12,666,667],{},"Synthetic monitoring runs automated, scripted checks against your application from external probe locations at regular intervals. Each check validates that the endpoint responds correctly, within acceptable time, with the expected content. Failures trigger immediate alerts. The term \"synthetic\" distinguishes these artificial probe-generated requests from real user traffic captured by real user monitoring (RUM).",[661,669,671],{"id":670},"what-is-the-difference-between-synthetic-monitoring-and-uptime-monitoring","What is the difference between synthetic monitoring and uptime monitoring?",[12,673,674],{},"Uptime monitoring is a type of synthetic monitoring focused specifically on availability: is the service up or down? Synthetic monitoring is the broader category, which also includes performance testing, transaction monitoring, and content validation. Most uptime monitoring tools perform HTTP synthetic checks; browser-based synthetic tools go further by simulating full user journeys.",[661,676,678],{"id":677},"does-synthetic-monitoring-slow-down-my-application","Does synthetic monitoring slow down my application?",[12,680,681],{},"No. Synthetic probes send the same requests a browser or API client would send. At typical check frequencies (every 1–5 minutes), the additional load is negligible. A single HTTP check request consumes far less server resources than a single human page view.",[661,683,685],{"id":684},"how-is-synthetic-monitoring-different-from-load-testing","How is synthetic monitoring different from load testing?",[12,687,688],{},"Synthetic monitoring sends low-frequency requests to verify availability and correctness during normal operation. Load testing sends high-frequency or high-concurrency requests to measure behavior under stress. They serve different purposes: synthetic monitoring is continuous and production-facing; load testing is periodic and typically runs against staging or pre-production environments.",[661,690,692],{"id":691},"what-check-interval-should-i-use-for-synthetic-monitoring","What check interval should I use for synthetic monitoring?",[12,694,695],{},"1 minute is the standard for critical production services. This provides at most 60 seconds of detection delay, with a median of 30 seconds. 30-second intervals are available on Vantaj's Team plan for the most latency-sensitive services. 5-minute intervals are acceptable for non-critical secondary endpoints where a slightly longer detection window is tolerable.",[661,697,699],{"id":698},"can-synthetic-monitoring-detect-content-changes-not-just-outages","Can synthetic monitoring detect content changes, not just outages?",[12,701,702],{},"Yes. Keyword assertions in synthetic monitoring check that specific strings are present or absent in the response body. This detects partial deploys that return 200 but serve error content, CMS content that gets accidentally deleted, and broken page templates that render with empty sections.",{"title":704,"searchDepth":705,"depth":705,"links":706},"",2,[707,708,709,710,711,712,713,714,715,716],{"id":25,"depth":705,"text":26},{"id":54,"depth":705,"text":55},{"id":162,"depth":705,"text":163},{"id":302,"depth":705,"text":303},{"id":383,"depth":705,"text":384},{"id":475,"depth":705,"text":476},{"id":559,"depth":705,"text":560},{"id":596,"depth":705,"text":597},{"id":616,"depth":705,"text":617},{"id":658,"depth":705,"text":659,"children":717},[718,720,721,722,723,724],{"id":663,"depth":719,"text":664},3,{"id":670,"depth":719,"text":671},{"id":677,"depth":719,"text":678},{"id":684,"depth":719,"text":685},{"id":691,"depth":719,"text":692},{"id":698,"depth":719,"text":699},"tutorials","2026-06-27","Synthetic monitoring simulates user interactions with your application from external locations to verify availability, performance, and correct behavior - before real users encounter problems. Here's how it works and how it compares to real user monitoring.","md",null,{},true,"\u002Fblog\u002Fsynthetic-monitoring-guide",10,{"title":5,"description":727},"blog\u002Fsynthetic-monitoring-guide","nC_rLXRpyEgLq6Oiit7uyF7ByxCGThSN_Zma6Xhgvrs",1782464113554]