diff --git a/apps/going-to-production.html.markerb b/apps/going-to-production.html.markerb
index e135289c98..852d275abe 100644
--- a/apps/going-to-production.html.markerb
+++ b/apps/going-to-production.html.markerb
@@ -9,7 +9,7 @@ redirect_from:
- /docs/reference/going-to-production/
---
-This checklist guides you through setting up a production environment on Fly.io. What makes an app production-ready can vary from one framework to another. You'll need to decide what checklist items will work for you; not all of the items will apply to your app and there may be other considerations not listed here.
+This checklist guides you through setting up a production environment on Fly.io. What makes an app production-ready can vary from one framework to another. You'll need to decide which checklist items work for your app and setup; not all of the items will apply and there may be other considerations not listed here.
**Important:** This list is neither exhaustive nor mandatory, and does not guarantee production-readiness for your app. Apps might have unique requirements for production.
@@ -48,8 +48,9 @@ This checklist guides you through setting up a production environment on Fly.io.
<%= render ChecklistComponent.new(
items: [
- { id: "production-grade-postgres", title: "Run 'production-grade' Postgres", description: "For Fly Postgres, our unmanaged database, set up replication clusters of 3+ servers. See [High Availability & Global Replication](/postgres/advanced-guides/high-availability-and-global-replication/). You can also use an external database provider and configure it for redundancy."},
- { id: "offsite-backups", title: "Set up offsite backups", description: "For all databases, it's essential to have a recovery plan that includes storing backups offsite."}
+ { id: "production-grade-postgres", title: "Run \"production-grade\" Postgres", description: "For Fly Postgres, our unmanaged database, set up replication clusters of 3+ servers. See [High Availability & Global Replication](/postgres/advanced-guides/high-availability-and-global-replication/). You can also use an external database provider and configure it for redundancy."},
+ { id: "test-backups", title: "Periodically test your Fly Postgres backups", description: "Periodically [create a new Postgres app from a snapshot](/docs/postgres/managing/backup-and-restore/#restoring-from-a-snapshot) or clone the active app, then use `fly postgres connect` to log into the database and confirm that all the data is present." },
+ { id: "offsite-backups", title: "Set up offsite backups", description: "For all databases, it's essential to have a recovery plan that includes storing backups offsite. You can use volume snapshots as part of your plan, but you should also store copies of your backups in another location. See [Manage volume snapshots](https://fly.io/docs/volumes/snapshots/) and, for Fly Postgres, [Backup, Restores, & Snapshots](https://fly.io/docs/postgres/managing/backup-and-restore/)." }
],
c: params[:c] || "",
o: params[:o] || "",
@@ -61,6 +62,7 @@ This checklist guides you through setting up a production environment on Fly.io.
<%= render ChecklistComponent.new(
items: [
{ id: "export-logs", title: "Export your logs", description: "Set up the Fly Log Shipper to aggregate your app’s logs to a service of your choice. See [Export logs](/docs/monitoring/exporting-logs/)."},
+ { id: "metrics", title: "Monitor your app with fully-managed metrics", description: "Use managed Prometheus and the Grafana dashboard to monitor your app. See [Metrics on Fly.io](/docs/monitoring/metrics/)."},
{ id: "sentry", title: "Use Sentry for Error tracking", description: "An application monitoring platform that helps you identify and fix software problems before they impact your users from our extension partner Sentry.Fly.io organizations get a year's worth of [Team Plan](https://sentry.io/pricing/+external) credits. See [Application Monitoring by Sentry](/docs/monitoring/sentry/)."}
],
c: params[:c] || "",
@@ -73,9 +75,9 @@ This checklist guides you through setting up a production environment on Fly.io.
<%= render ChecklistComponent.new(
items: [
{ id: "multiple-machines", title: "Use multiple Machines for resiliency", description: "Make your app resilient to single-host failures with multiple Machines that stay stopped until you need them. See [Blueprint: Resilient apps use multiple Machines](/docs/blueprints/resilient-apps-multiple-machines/)."},
- { id: "add-regions", title: "Add regions", description: "Scale your app in multiple regions closest to your app's users. See [Scale an app's regions](/docs/launch/scale-count/#scale-an-apps-regions)."},
- { id: "autostop-autostart", title: "Refine the default autostop/autostart settings", description: "Autostop/autostart lets you stop or suspend Machines when there's low traffic, saving on resource usage and costs. You get autostop/autostart by default with a new app, but you can configure it to optimize for your use case. See [Autostop/autostart Machines](/docs/launch/autostop-autostart/)."},
- { id: "autoscale-by-metric", title: "Set up autoscaling by metric", description: "For apps that aren't running web services, use the autoscaler app to scale your app's Machines based on any metric, saving on resource usage and costs. See [Autoscale based on metrics](/docs/launch/autoscale-by-metric/)."}
+ { id: "add-regions", title: "Scale your app into more regions", description: "Scale your app in multiple regions closest to your app's users. See [Scale an app's regions](/docs/launch/scale-count/#scale-an-apps-regions)."},
+ { id: "autostop-autostart", title: "Use autostop/autostart to reduce costs", description: "Autostop/autostart lets you stop or suspend Machines when there's low traffic, saving on resource usage and costs. You get autostop/autostart by default with a new app, but you can configure it to optimize for your use case. See [Autostop/autostart Machines](/docs/launch/autostop-autostart/)."},
+ { id: "autoscale-by-metric", title: "Set up autoscaling by metric to reduce costs", description: "For apps that aren't running web services, use the autoscaler app to scale your app's Machines based on any metric, saving on resource usage and costs. See [Autoscale based on metrics](/docs/launch/autoscale-by-metric/)."}
],
c: params[:c] || "",
o: params[:o] || "",
@@ -87,7 +89,7 @@ This checklist guides you through setting up a production environment on Fly.io.
<%= render ChecklistComponent.new(
items: [
{ id: "machine-sizing", title: "Get Machine sizing right", description: "Most production apps require 2x or performance CPUs. Also make sure you have enough RAM for your app and/or enable [swapping to disk](https://fly.io/docs/reference/configuration/#swap_size_mb-option) to deal with brief spikes in memory use. See [Machine sizing](docs/machines/guides-examples/machine-sizing/)."},
- { id: "fine-tune-app", title: "Fine-tune your app", description: "Learn about optimizing your app on Fly.io. See [Tips to fine-tune and your app on Fly.io](/docs/reference/fine-tune-apps/)."}
+ { id: "fine-tune-app", title: "Fine-tune your app", description: "Learn about optimizing your app on Fly.io. See [Tips to fine-tune your app on Fly.io](/docs/reference/fine-tune-apps/)."}
],
c: params[:c] || "",
o: params[:o] || "",
@@ -110,7 +112,7 @@ This checklist guides you through setting up a production environment on Fly.io.
<%= render ChecklistComponent.new(
items: [
- { id: "community", title: "Community", description: "Check out our [community](https://community.fly.io/) to get help and answers."},
+ { id: "community", title: "Get answers in our community", description: "Check out our [community](https://community.fly.io/) to talk about your project and get help."},
{ id: "email-support", title: "Consider a plan for email support", description: "You get email support with a [Launch, Scale, or Enterprise plan](https://fly.io/plans)."}
],
c: params[:c] || "",
diff --git a/monitoring/metrics.html.md b/monitoring/metrics.html.md
index 531dff1aa7..f14fb869ce 100644
--- a/monitoring/metrics.html.md
+++ b/monitoring/metrics.html.md
@@ -11,7 +11,7 @@ redirect_from:
The Fly.io platform includes a fully-managed metrics solution to help you easily monitor your Fly apps.
It includes the following components:
-- [**Prometheus on Fly.io**](#prometheus-on-fly-io): Managed, Prometheus-compatible time series storage
+- [**Prometheus on Fly.io**](#prometheus-on-fly-io): Managed Prometheus-compatible time series storage
- [**Dashboards**](#dashboards): Managed Grafana with detailed visualizations of all built-in metrics
- [**Built-in Metrics**](#built-in-metrics): Metrics automatically sent from every Fly app you deploy
- [**Custom Metrics**](#custom-metrics): Expose additional metrics from Fly apps for further customization