> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Synthetic vs Real User Monitoring

> Compare synthetic monitoring and real user monitoring — when to use each approach

Synthetic monitoring probes your services from external locations on a schedule. Real user monitoring (RUM) captures actual user experiences in the browser or app. Most production systems benefit from both.

## Synthetic monitoring

Synthetic monitors send automated requests to your endpoints at regular intervals, regardless of whether real users are active.

**Strengths:**

* Detects outages 24/7, even during low-traffic periods
* Consistent baseline — same check from the same location every time
* Tests specific endpoints, assertions, and SLA compliance
* Works before launch (no real traffic needed)

**Limitations:**

* Tests a single path from a fixed set of locations
* Doesn't capture real user device/browser/network variation
* Can't measure client-side rendering performance

### What it looks like

```
Every 60 seconds:
  Probe (us-east) → GET /health → 200 OK (142ms) ✓
  Probe (eu-west) → GET /health → 200 OK (287ms) ✓
```

## Real user monitoring (RUM)

RUM embeds a script in your frontend that captures performance data from actual browser sessions.

**Strengths:**

* Reflects real user experience (device, browser, network)
* Captures client-side metrics (LCP, FID, CLS)
* Shows geographic and device-type distribution
* Identifies performance issues that synthetic tests miss

**Limitations:**

* No data during low-traffic periods
* Higher noise (slow user networks, old devices)
* Requires frontend instrumentation
* Privacy and consent considerations

## When to use each

| Scenario                                | Recommended |
| --------------------------------------- | ----------- |
| Detecting server-side outages           | Synthetic   |
| Monitoring APIs and background services | Synthetic   |
| Measuring real page load performance    | RUM         |
| Verifying SLA compliance                | Synthetic   |
| Debugging performance by geography      | RUM         |
| Pre-launch testing                      | Synthetic   |
| Understanding actual user impact        | RUM         |

## Complementary, not competing

The most effective monitoring strategy uses both:

1. **Synthetic monitors** as the reliability backbone — always running, always checking, providing the uptime SLA
2. **RUM** for user experience insights — understanding what real users actually experience

When a synthetic monitor fires an alert, RUM data helps you understand the user impact. When RUM shows degradation, synthetic monitors help you isolate whether it's your infrastructure or the user's network.

## DevHelm's approach

DevHelm focuses on synthetic monitoring — automated checks from distributed probe locations. This gives you reliable uptime data, response time tracking, and instant incident detection.

<CardGroup cols={2}>
  <Card title="Multi-region monitoring" icon="globe" href="/guides/multi-region-monitoring">
    Run checks from multiple locations.
  </Card>

  <Card title="Response time budgets" icon="clock" href="/guides/response-time-budgets">
    Track and alert on latency thresholds.
  </Card>
</CardGroup>
