RECIPE

Synthetic monitoring

Deploy scripted browser checks that simulate real user journeys across your critical flows — login, checkout, API health — and alert before customers notice.

Overview

Synthetic monitoring runs scripted transactions against your application on a fixed schedule from multiple geographic regions. Unlike RUM, it catches problems when zero users are online — staging regressions, third-party outages, DNS flips.

Check definition

Write a Playwright script that navigates your critical path. Meridian executes it inside isolated Chromium workers every 60 seconds. Assert on HTTP status, DOM text, and total duration.

// checkout.spec.ts
import { test, expect } from '@playwright/test';

test('complete purchase', async ({ page }) => {
  await page.goto('https://shop.example.com/cart');
  await page.click('[data-testid="checkout"]');
  await page.fill('#email', 'synthetic@meridian.dev');
  await page.click('[data-testid="place-order"]');
  await expect(page.locator('.confirmation'))
    .toBeVisible({ timeout: 15000 });
});

Regions

Run checks from up to 12 edge locations. Meridian aggregates latency percentiles per region and surfaces geo-skewed regressions — a CDN misconfiguration in Frankfurt won't hide behind green US-East metrics.

Alerting

Configure thresholds on failure rate, p95 duration, or assertion misses. Meridian fires alerts to Slack, Discord, PagerDuty, or a generic webhook within 90 seconds of a confirmed multi-region degradation.

NEXT STEPS

Read the quickstart guide to wire your first synthetic check, or explore alert routing recipes for escalation policies.