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:
| Variable | Where to Find It |
|---|---|
SENTRY_DSN | Sentry project onboarding page |
SENTRY_AUTH_TOKEN | Sentry internal integration settings |
SENTRY_ORG | Organization general settings page |
SENTRY_PROJECT | Organization, 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-nameAuth 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.