MonSPHERE

Monitoring

Screenshot Monitoring

Scheduled visual snapshots of a page, diffed pixel-by-pixel against the previous one to catch a change nothing else picks up on.

A Screenshot Monitor captures a real screenshot of a page on every check and compares it against the previous one, pixel by pixel — catching a defaced page, a broken layout, or an unexpected banner, all things that can leave status code, latency, and a keyword assertion completely untouched.

Availability

Requires a plan with Screenshot Monitoring (Professional and above) — each check launches a real headless Chromium instance, the same per-check cost as Synthetic Monitoring.

How it works

curl -X POST https://api.monsphere.com/api/v1/organizations/{orgId}/monitors \
  -H "X-Api-Key: msk_live_..." -H "Content-Type: application/json" \
  -d '{
    "name": "Homepage appearance",
    "type": "screenshot",
    "target": "https://example.com",
    "intervalSeconds": 300,
    "timeoutSeconds": 30,
    "config": { "screenshotDiffThresholdPercent": 5 }
  }'

Every check captures a fixed-size viewport screenshot and compares it against the last one on record. screenshotDiffThresholdPercent (5% by default) is how much of the page has to actually change before it's flagged — a low threshold catches subtler changes but is noisier on pages with dynamic content (ads, timestamps, carousels) that never look pixel-identical between two checks even when nothing meaningful changed. A resized or redesigned page is always reported as a full change.

This ships with a zero-config default alert — "Screenshot Changed" — the moment a change clears the threshold, no rule setup required, the same convention the built-in "Monitor Down" alert already uses. A monitor's very first check only ever establishes its baseline; nothing is flagged as "changed" until there's a previous screenshot to differ from.

Check frequency

A 5-minute minimum interval is enforced — a real browser launch and image capture per check costs far more than a protocol probe, so this isn't meant to run at Heartbeat-style frequency.

How it runs

Like Synthetic Monitoring, a Screenshot monitor doesn't go through Blackbox Exporter or Prometheus. It runs on MonSPHERE's own internal scheduler, the same one Heartbeat and Synthetic monitors use, so there's no region to pick.