Synthetic Monitoring

Synthetic Monitoring uses simulated requests from global locations to continuously verify that your apps, APIs, and network endpoints are up, fast, and behaving as expected. You choose a request type (HTTP, DNS, SSL, WebSocket, UDP, ICMP, TCP, or gRPC), define success criteria (“assertions”), pick run locations, set a schedule, and wire up notifications. The default request type is HTTP if you don’t select another.

When to use it (and what you’ll get)

  • Availability baselines: Know if an endpoint is up from multiple geographies—not just from inside your VPC.
  • Performance SLOs: Track response time and success rate over time; catch latency regressions before customers do.
  • External-facing dependencies: Verify DNS, certificates (SSL/TLS), and TCP reachability, even when your app is healthy.
  • Early warning: Configure alerts to notify Slack/Email/Opsgenie/PagerDuty when conditions fail (e.g., status≠200 or latency>500ms).

Create a Synthetic Monitor

The new-monitor flow has six guided steps. Each section below explains what you see and how to choose values that make sense for your use case.

1 Create a New Test

From the left sidebar, open Synthetic Monitoring → Add New Test. The Synthetics List view also exposes quick filters (Status, Test Type, Location, Response Type) so you can later find and manage monitors at scale.

Synthetics Testing
Synthetics Testing

2 Choose Request Type

Pick the protocol you need to test. If you don’t specify one, it defaults to HTTP. Typical use cases:

  • HTTP: Ping a web/API endpoint; validate status code, response time, and (optionally) content presence.
  • SSL: Check TLS/SSL certificate validity/expiration for a host.
  • DNS: Resolve a record and measure response/accuracy.
  • WebSocket: Open a socket and exchange a message.
  • UDP / ICMP / TCP: Validate basic network reachability/latency/packet loss outside the application layer.
  • gRPC: Call a gRPC endpoint and track latency/errors.
Synthetics Testing

Tip: Start with the simplest check that proves your SLI. For an API, that’s usually: HTTP 200 AND response time < threshold. Add deeper checks later.

3 Define the Request

Fill out:

  • Name: A human-readable label (e.g., Landing page – us-east or Checkout API), so teams instantly recognize what failed.
  • Environment: Tag monitors per environment (prod/stage/dev) to scope dashboards and notifications.
  • Additional Tags: Freeform labels for ownership/routing (e.g., team:payments, service:web).
  • Test Type: Choose Single-step API tests here. (Multistep and Browser tests are separate flows.)
  • HTTP Method & URL (for HTTP): Select the verb (GET/POST/DELETE…) and enter the endpoint URL. Use the same URL structure you’d give a customer or external integration.
Synthetics Testing

Good practice: model monitors after real traffic. If customers call /api/v1/products?category=shoes, test that exact path with any required headers or tokens (never test an internal endpoint if the user-visible one is different).

4 Define Assertions (your pass/fail rules)

Assertions declare exactly what success means. The UI lets you stack rules like:

  • When the Status code is 200
  • AND When the Response time is less than 500 ms
Synthetics Testing

Design tips

  • Choose thresholds that reflect your SLOs (e.g., “p95 < 300ms” might translate to a conservative <500ms per run, depending on variability).
  • Model AND conditions sparingly; excessive rules increase false positives in noisy networks.

5 Select Locations

Pick one or more regions where the monitor should run. Start with a single region to validate your setup, then expand. Geographies often surface hidden problems such as CDN routing, DNS geo, or regional WAF rules.

Synthetics Testing

If your endpoints are restricted, whitelist the synthetic agent IPs (table below). This is required for private allow-lists and geofenced services.

6 Specify Test Frequency

Decide how often to run. Higher frequencies catch issues earlier but cost more and can generate more traffic.

Synthetics Testing

Frequency guidance:

  • Critical APIs: 30–60s.
  • Non-critical: 1–5 min.
  • Heavy endpoints: Start at 5–10 min, then tune down if needed.

7 Configure Notifications

Select your notification source(s) (Slack, Email, Opsgenie, PagerDuty), add recipients, and fine-tune behavior:

  • Re-notify every n minutes to keep incidents visible.
  • Trigger after n monitor failures across all locations to dampen one-off blips.

Click Create Monitor to save.

Synthetics Testing

Whitelist these Public IPs (if needed)

If your services are behind allow-lists, add the following IPs so the Middleware’s synthetic agents can reach them. (IPs may change; you’ll be notified of planned updates.)

RegionLocationPublic IP
USNorth Virginia184.73.132.14
USCalifornia18.144.107.2
Asia PacificHong Kong16.162.16.221
Asia PacificMumbai35.154.132.98
Asia PacificSeoul43.201.168.121
Asia PacificSingapore52.76.158.43
Asia PacificSydney13.210.225.158
Asia PacificTokyo54.249.157.179
EuropeFrankfurt52.57.15.39
EuropeLondon3.11.236.173
EuropeParis52.47.67.164
CanadaCentral Canada3.97.34.227
South AmericaSão Paulo54.207.185.173
Middle EastBahrain15.184.102.232
AfricaCape Town13.244.83.119

Reading the Synthetics List

The list view shows columns such as Status, Protocol, Name, Env, Interval, Success Rate, and Last Modified. Use the left-hand Synthetic Filters (status/test type/location/response type) and the search bar for quick triage.

Iterating Safely

  1. Start with one location and conservative assertions → validate no false positives.
  2. Add more locations → catch geography-specific issues (CDN, DNS, firewall).
  3. Tighten thresholds once baseline variability is understood.
  4. Use failure-count before alert, so brief blips don’t page your team.

Troubleshooting

  • Monitor fails only in one region → verify your network allow-list includes the IP for that region. Check regional WAF/CDN rules.
  • Flaky latency → raise the threshold or reduce frequency; network jitter is expected across continents.
  • HTTP 2xx but still “fail” → review all assertions; a strict response-time rule is often the culprit.
  • No notification → ensure a channel (Slack/Email/etc.) is selected, a recipient is set, and re-notify/threshold settings aren’t suppressing alerts.

Need assistance or want to learn more about Middleware? Contact our support team at [email protected] or join our Slack channel.