# How to Monitor Fly.io Uptime

> Fly.io runs your applications close to users by deploying them to servers around the world. It transforms Docker containers into micro-VMs that run on hardware in cities near your users.

*Source: https://monitoristic.com/monitor/fly-io*

---

## Why Monitor Fly.io?

Fly.io runs your app across multiple regions, which is great for performance — but it also means failures can be regional. Your app might be down in Frankfurt but running fine in Chicago. Without multi-region-aware monitoring, you'd never know half your European users can't reach your service.

## What to Monitor

- `your-app.fly.dev` — Your app's default Fly.io domain
- `your-custom-domain.com` — Custom domain pointing to Fly.io
- `your-app.fly.dev/health` — Health check endpoint

## What You Should Actually Do

1. Monitor your app's public URL — either fly.dev or your custom domain — from outside Fly.io's network
2. Track response times to catch cold starts from machine auto-stop — spikes to 5+ seconds indicate machines were sleeping
3. Check your health endpoint, not just the root URL — the proxy can return 200 while your app returns errors
4. Monitor after every deploy — multi-region deploys can partially fail without clear error messages
5. Review incident history weekly to catch transient regional issues that resolved before anyone noticed

## Fly.io's Official Status Page

Fly.io publishes real-time status at https://status.flyio.net. Your own monitor complements it by catching connection-level issues, often before the status page updates.

## Takeaway

Fly.io's multi-region architecture is powerful, but it introduces a failure mode most developers aren't used to: regional partial failures. Your app can be up in Chicago and down in Frankfurt simultaneously. External monitoring won't catch every regional issue from a single location, but it catches total failures, cold start delays, and deployment problems — the most common sources of user-facing downtime.

## Frequently Asked Questions

### Does Fly.io have built-in health checks?

Yes — Fly.io supports internal health checks that determine whether a machine should receive traffic. But these are internal to Fly's proxy layer. They don't alert you when something fails, and they don't provide incident history. External monitoring adds alerts and tracking on top of Fly's internal checks.

### How do I monitor Fly.io cold starts?

Set up an HTTP monitor with response time tracking. When Fly.io auto-stops a machine and a request triggers a restart, the response time will spike from your normal baseline (100-300ms) to several seconds. Monitoring this over time shows how often your users experience cold starts.

### Should I monitor my fly.dev domain or my custom domain?

Monitor your custom domain. This tests the full chain — DNS, SSL, Fly.io's proxy, and your application. If you only monitor the fly.dev domain, you'll miss DNS and SSL issues on your custom domain.

### How is this different from status.flyio.net?

Fly.io's status page reports platform-wide incidents by region. Your monitor checks YOUR specific app. Deployment failures, cold starts, machine crashes, and app-level errors are specific to your deployment and don't appear on the platform status page.
