synthetic-monitoringguideplaywright

Synthetic Monitoring Explained: What It Is & Why It Matters

PingSLA Team··8 min read

Synthetic Monitoring Explained: What It Is & Why It Matters

If you have ever wondered what is synthetic monitoring and why it matters more than a simple uptime check, this article gives you the complete picture. Synthetic monitoring simulates real user actions — clicking buttons, filling forms, completing checkouts — using automated browser scripts. It catches failures that a basic HTTP ping will never detect. Your Razorpay payment page might return a 200 OK, but if the JavaScript fails to render the checkout widget, your customers cannot pay. Synthetic monitoring finds those invisible failures.

PingSLA supports Playwright-based synthetic monitoring from Indian probe locations including Bengaluru (BLR), Mumbai, and Chennai. This guide explains the concept, shows real examples, and helps you decide when to use synthetic monitoring versus uptime monitoring.

What Exactly Is Synthetic Monitoring?

Synthetic monitoring is a technique where automated scripts simulate user interactions with your application at regular intervals. Unlike real user monitoring (RUM), which observes actual visitors, synthetic monitoring creates artificial transactions that mimic critical user journeys.

Think of it as a robot that visits your website every 5 minutes, performs a specific sequence of actions, and reports whether everything worked correctly. If any step fails — a button doesn't render, a form submission returns an error, a page takes too long to load — the synthetic monitor raises an alert.

The "synthetic" in synthetic monitoring means the traffic is simulated, not real. This has several advantages:

  • Continuous coverage: Real users don't visit at 3 AM, but your synthetic monitor does. You catch overnight failures before the morning rush.
  • Consistent baselines: Every synthetic check follows the same script, so you can compare performance over time without the noise of varying user behaviour.
  • Pre-production testing: Run synthetic checks against staging environments before deploying to production.
  • Multi-location verification: Test from BLR, Mumbai, Chennai, Singapore, and Frankfurt simultaneously to verify global availability.

How Synthetic Monitoring Differs from Uptime Monitoring

This is where most teams get confused. Uptime monitoring (the HTTP ping check) tells you whether a server responds. Synthetic monitoring tells you whether the application works.

AspectUptime Monitoring (Ping/HTTP)Synthetic Monitoring (Browser)
What it checksServer responds with 200 OKFull user journey completes
TechnologyHTTP requestHeadless browser (Playwright/Puppeteer)
Detects JS errorsNoYes
Detects broken formsNoYes
Detects CSS rendering issuesNoYes
Detects third-party failuresNo (only your server)Yes (Razorpay, Google Maps, analytics)
Check duration100–500ms5–30 seconds
Resource usageMinimalModerate (runs a browser)
Check frequencyEvery 30 secondsEvery 1–10 minutes
CostLowHigher (browser resources)
False positive rateVery lowLow (with proper selectors)
Best forServer health, API endpointsCheckout flows, login pages, dashboards

Both types of monitoring are essential. Uptime monitoring is your first line of defence — it catches server crashes, DNS failures, and network outages. Synthetic monitoring is your second line — it catches application-level failures that the server alone cannot detect.

The Razorpay Checkout Example: Why Pings Lie

Here is a real scenario that happens to Indian SaaS companies regularly.

You run an e-commerce site. Your payment page uses Razorpay's JavaScript checkout widget. Your uptime monitor pings https://yourstore.in/checkout every 60 seconds and gets a 200 OK response. Everything looks green on your status page.

But here's what's actually happening:

  1. Your server returns the HTML page with a 200 status — the ping check passes.
  2. The browser loads the page and executes JavaScript.
  3. Razorpay's checkout.js script tries to load from their CDN.
  4. A CDN edge node in India is experiencing issues.
  5. The Razorpay widget fails to render.
  6. Customers see a blank payment section. No payment button appears.
  7. Customers leave. Revenue drops. Your uptime dashboard still shows 100%.

This is not hypothetical. Razorpay, Paytm, Cashfree, and every other payment gateway have occasional CDN or JavaScript failures that do not affect the server response code. Only synthetic monitoring catches this, because it actually loads the page in a browser and verifies that the payment widget rendered correctly.

How PingSLA's Synthetic Monitor Catches This

In PingSLA, you would create a synthetic monitor with a Playwright script like this:

// PingSLA Synthetic Check: Razorpay Checkout Verification
const { test, expect } = require('@playwright/test');

test('Razorpay checkout widget loads', async ({ page }) => {
  // Navigate to checkout page
  await page.goto('https://yourstore.in/checkout');

  // Wait for the Razorpay button to render
  await page.waitForSelector('.razorpay-payment-button', {
    timeout: 10000
  });

  // Verify the button is visible and clickable
  const payButton = page.locator('.razorpay-payment-button');
  await expect(payButton).toBeVisible();
  await expect(payButton).toBeEnabled();

  // Verify the price is displayed correctly
  const priceElement = page.locator('.order-total');
  await expect(priceElement).toContainText('₹');
});

This script runs every 5 minutes from the BLR probe. If the Razorpay widget fails to load, PingSLA sends a WhatsApp alert to your team within seconds. You fix the issue before the morning traffic arrives.

What Can Synthetic Monitoring Check?

Synthetic monitoring is not limited to payment pages. Here are the most common use cases for Indian companies:

Login Flows

Verify that your login page renders, accepts credentials, and redirects to the dashboard. This catches SSO failures, OAuth token issues, and session management bugs.

test('Login flow works', async ({ page }) => {
  await page.goto('https://app.yourproduct.in/login');
  await page.fill('#email', 'monitor@yourproduct.in');
  await page.fill('#password', process.env.MONITOR_PASSWORD);
  await page.click('button[type="submit"]');
  await expect(page).toHaveURL(/.*dashboard/);
  await expect(page.locator('.welcome-message')).toBeVisible();
});

Search Functionality

For e-commerce and marketplace sites, verify that search returns results. A broken Elasticsearch cluster might return an empty result page without throwing a server error.

API-Driven Dashboards

SaaS dashboards that fetch data from multiple APIs can partially break — one widget shows data, another shows a spinner forever. Synthetic monitoring verifies that all widgets render with actual content.

Multi-Step Forms

Insurance quote forms, loan applications, KYC flows — any multi-step process where a JavaScript error on step 3 makes the entire flow unusable.

Content Delivery

Verify that images, videos, and documents load correctly. A misconfigured CDN might serve 403 errors for static assets while the HTML page loads fine.

Playwright vs Puppeteer for Synthetic Monitoring

PingSLA uses Playwright as its synthetic monitoring engine. Here's why Playwright is the better choice:

FeaturePlaywrightPuppeteer
Browser supportChromium, Firefox, WebKitChromium only
Auto-waitBuilt-in smart waitingManual waits required
SelectorsCSS, text, role, test-idCSS only (natively)
Network interceptionFull supportFull support
Mobile emulationBuilt-in device profilesManual configuration
ReliabilityExcellent — fewer flaky testsGood but more flaky
MaintainerMicrosoftGoogle
Indian proxy supportFullFull

Playwright's auto-wait capability is critical for synthetic monitoring. When you write await page.click('.pay-button'), Playwright automatically waits for the element to appear, become visible, become stable (no animations), and become enabled before clicking. With Puppeteer, you would need to manually add waitForSelector calls everywhere, making scripts more fragile.

Setting Up Synthetic Monitoring in PingSLA

Step 1: Create a Synthetic Monitor

In your PingSLA dashboard, go to Monitors → Add Monitor → Synthetic (Browser Check).

Step 2: Write Your Playwright Script

Use the built-in script editor or paste your Playwright test. PingSLA provides templates for common scenarios:

  • Login verification
  • Checkout flow
  • Search functionality
  • Form submission
  • Page load performance

Step 3: Configure Check Settings

  • Frequency: How often to run the check (1, 5, 10, or 15 minutes)
  • Timeout: Maximum time for the entire script (default: 30 seconds)
  • Probe locations: Select from BLR (Bengaluru), Mumbai, Chennai, Singapore, Frankfurt, US-East
  • Alert channels: WhatsApp, email, Slack, webhook

Step 4: Set Performance Thresholds

Beyond pass/fail, set performance budgets:

  • Page load time must be under 3 seconds
  • Largest Contentful Paint (LCP) under 2.5 seconds
  • Total script execution under 15 seconds

If any threshold is breached, PingSLA flags it as a performance degradation — not a full outage, but a warning that user experience is declining. Understanding metrics like TTFB (Time to First Byte) helps you set meaningful performance budgets.

Step 5: Review Results

PingSLA stores screenshots, network HAR files, and console logs for every synthetic check. When a check fails, you get:

  • A screenshot of what the browser saw at the point of failure
  • The full network waterfall showing which requests failed
  • Console errors captured during execution
  • A video recording of the browser session (on Pro plans and above)

This diagnostic data eliminates the "works on my machine" problem. You see exactly what the synthetic monitor saw when it failed.

Synthetic Monitoring for Indian Government and Banking Sites

Indian government portals and banking applications are notorious for intermittent failures. IRCTC's tatkal booking page, SBI's internet banking portal, various state government e-Seva portals — these sites frequently have JavaScript errors, broken SSL configurations, and third-party script failures that a simple ping never detects.

If you manage any of these applications, synthetic monitoring is not optional. It is the only way to catch:

  • Payment gateway widget failures during peak hours
  • Aadhaar verification API timeouts that break KYC flows
  • DigiLocker integration failures that block document uploads
  • UPI intent handler errors on mobile browsers

PingSLA's BLR and Mumbai probes are specifically positioned to test latency and availability as experienced by Indian users. Testing from a US-based probe tells you nothing about how your site performs for a user in Tier-2 India on a Jio connection. For more on this topic, read Website Monitoring for Indian Startups.

When to Use Uptime Monitoring vs Synthetic Monitoring

Use both. They serve different purposes:

Use uptime monitoring for:

  • APIs and microservices (health check endpoints)
  • Static websites and landing pages
  • DNS and domain monitoring
  • Basic server availability

Use synthetic monitoring for:

  • Payment and checkout flows
  • Login and authentication
  • Multi-step user journeys
  • Pages with heavy JavaScript
  • Third-party integration verification
  • Performance budgets

A good monitoring strategy combines both. PingSLA lets you create both types of monitors from the same dashboard, with unified alerting via WhatsApp, email, and Slack.

Cost of Synthetic Monitoring

Synthetic monitoring costs more than uptime monitoring because it runs a full browser for each check. However, the cost of NOT having it — missed checkout failures, silent revenue loss, and customer trust erosion — far exceeds the monitoring cost.

PingSLA includes synthetic monitoring in Pro plans and above starting at ₹12,499/month. Each synthetic check consumes browser execution time, and plans include generous allowances for typical monitoring needs.

"We were showing 99.99% uptime while our checkout was broken for 6 hours. Synthetic monitoring would have caught it in 5 minutes." — Engineering Lead, Indian D2C brand

Getting Started

If you are new to synthetic monitoring, start with your most critical user journey — usually the checkout or payment flow. Write a simple Playwright script that navigates to the page, waits for the key element, and asserts it is visible. Run it every 5 minutes from the BLR probe. That single check will catch more real outages than a hundred HTTP pings.

Synthetic monitoring is not a luxury for large enterprises. It is a necessity for any team that cares about what users actually experience. PingSLA makes it accessible to Indian startups and SMBs with affordable pricing and native WhatsApp alerts. Compare your options in our 7 Best Uptime Monitoring Tools for India roundup.

Start monitoring what matters — not just whether your server responds, but whether your application actually works.

Start monitoring free — no credit card required

Start Free →

Monitor your site from 12 global regions →

Start Free →