Monitoring

LaunchFast monitoring has two layers: infrastructure metrics via Fly.io's built-in Grafana dashboards (automatic, no configuration) and application-level monitoring via Sentry (opt-in).

Infrastructure monitoring

Fly.io provides built-in Grafana dashboards for infrastructure-level metrics including CPU usage, memory consumption, network I/O, and instance health. Access them from your Fly.io dashboard under the Metrics section for your application. No additional configuration is required.

Application monitoring (Sentry)

Sentry provides error tracking, performance monitoring, and session replay for your application code. This is optional and only needed for production monitoring.

Setup

You need four values to configure Sentry:

VariableWhere to Find It
SENTRY_DSNSentry project onboarding page
SENTRY_AUTH_TOKENSentry internal integration settings
SENTRY_ORGOrganization general settings page
SENTRY_PROJECTOrganization, then Projects, then your project name

Fly secrets

Set the DSN as a runtime secret on Fly:

fly secrets set SENTRY_DSN="your-dsn" --app your-app-name

Auth token

Create an internal integration in Sentry with Releases:Admin and Organization:Read scopes. Generate the auth token from the integration settings page.

Vite plugin

The Sentry Vite plugin in vite.config.ts creates releases and associates commits automatically during builds when SENTRY_AUTH_TOKEN is available. Release names use the commit SHA, passed as a build argument via the GitHub Actions workflow.

GitHub Actions build-time secrets

The Dockerfile includes examples of passing build-time secrets like SENTRY_AUTH_TOKEN. Add these to GitHub Actions secrets so they are available during CI builds. You can hardcode SENTRY_ORG and SENTRY_PROJECT directly in the Dockerfile since they are not sensitive values.

These build-time variables do not need to be added to env.server.ts since they are only used during the build and not at runtime.