Opyntel
Fly.io

Fly.io monitoring: all your Fly.io apps in one dashboard

Fly.io ships Prometheus and Grafana but no built-in alerts. Opyntel’s Fly.io monitoring shows every app at a glance with ready-made alert rules, plus the other systems you run.

See how it works
Built in vs Opyntel

Fly.io on its own, and Fly.io with Opyntel

Feature by feature, the biggest gaps first: what Fly.io gives you, and what you get in one dashboard with Opyntel.

Every app at a glance

On Fly.io

The Metrics tab on the Fly.io dashboard gives an overview of your apps, and the managed Grafana has detailed dashboards for the built-in metrics. Going deeper means filtering by app in Grafana or writing PromQL.

With Opyntel

Opyntel shows the full list of your apps and machines in one table, with down and degraded first and requests, error rate and latency in each row. You see it all at a glance with no queries to write.

Alerts when it goes down, and when it recovers

On Fly.io

Fly.io does not include built-in alerting. Its docs point you to Grafana alert rules on the Fly.io Prometheus data source, or to your own Prometheus with Alertmanager.

With Opyntel

Opyntel alerts out of the box when an app goes down or when CPU, memory, error rate or p95 latency passes your threshold, by email, Slack or SMS depending on your plan. Every alert notifies when it fires and again when it recovers.

Latency percentiles

On Fly.io

Apps with an HTTP, TLS or TCP handler publish edge proxy metrics, including a response count and a response-time histogram by status. You turn them into percentiles and error rates with PromQL.

With Opyntel

Opyntel reads the same proxy metrics and shows requests, status classes, p50, p95 and p99 latency and the 5xx error rate for every public app, side by side.

History

On Fly.io

Fly.io’s Prometheus keeps data for about 15 days and is meant for operational monitoring. Longer retention needs your own monitoring stack.

With Opyntel

Opyntel keeps the metrics it reads for 30 days on the free plan, a year on Pro and unlimited on Enterprise, with nothing of your own to run.

Fly.io plus the other systems you run

On Fly.io

Fly.io’s managed Prometheus and Grafana cover your Fly.io organizations, with CPU, memory, network and disk dashboards out of the box.

With Opyntel

Opyntel shows Fly.io next to every other platform you connect in one dashboard, with the same alert rules, history and deploy timeline for all of them.

Setup

How to set up Fly.io monitoring with Opyntel

Fly.io monitoring in four steps: from Fly.io to one dashboard with everything else you run.

  1. Create a read-only Fly.io token
    Run fly tokens create readonly to make a token that can only read one organization and its apps. Add --expiry for a shorter life than the default.
  2. Sign in to Opyntel
    Open your Opyntel dashboard and add a source. Accounts start from the waitlist, so join it to get yours.
  3. Paste the token in your dashboard
    Add Fly.io as a source, paste the token and your organization slug. The same token reads your apps, Machines and their metrics from Fly.io’s Prometheus API.
  4. See Fly.io in one dashboard
    Fly.io monitoring lands next to the other platforms you run: every service and server sits in one dashboard, down and degraded first, with default alert rules on from the start.

Don’t see your platform? From your Opyntel account you can request an integration with more platforms. Until then, and tell us which one you run on.

FAQ

Fly.io questions, answered

Short answers; some link to a guide that goes into detail.

The Machine ran out of memory and the kernel killed your app. How to fix Fly.io out of memory errors.

Its main process exits and the restart policy starts it again, up to 10 times before it stops. Why a Fly.io Machine keeps restarting.

Query the proxy’s response-time histogram with PromQL; Fly.io has no ready percentile chart or alert. Fly.io P95 and P99 latency with PromQL.

fly logs -a <app> streams the logs of every Machine in an app, and the Monitoring page of the app in the dashboard shows the same stream. Log search in Fly.io’s Grafana keeps about a week, so ship logs elsewhere for longer history.

With auto-stop on, Fly.io stops idle Machines and starts one again on the next request, so that request waits for the Machine to boot: a cold start. Set min_machines_running to keep one running if the wait matters. Opyntel shows the spike in your P95 and P99.

fly apps restart <app> restarts every Machine in the app, and fly machine restart <id> restarts one. Opyntel is read-only and never restarts anything, but it shows when a Machine keeps restarting by itself.

Machines are billed for the time they run, by size, and volumes, dedicated IPv4 addresses and outbound data add to it. The billing page of your organization shows the usage behind the bill.

The alerts your platform doesn’t send.

One dashboard for everything you run, with the alerts your platforms leave out. Read-only, nothing to install in your apps.

See how it works