Health checks
See your server's health and performance at a glance: Serverpod records CPU, memory, and request metrics automatically and stores them in your own database. Add health checks for the services you depend on, and watch them in the Insights dashboard.
Health monitoring
Without monitoring, you learn about a degraded server from complaints, not from dashboards. Adding a monitoring service usually means another third-party dependency and per-host pricing.
Serverpod automatically records CPU, memory, and request metrics and stores them in your own database, where Insights displays them per server. Add checks for the services you depend on, and their results appear alongside the built-in metrics.
How it works
1Built-in metrics are recorded automatically
Serverpod samples CPU, memory, and request throughput on a schedule and writes the results to your database.
2Add an application health check
Register a check for anything your server depends on, such as an external API.
var pod = Serverpod(
args,
Protocol(),
Endpoints(),
healthCheckHandler: (serverpod, timestamp) async {
return [
ServerHealthMetric(
name: 'payments_api',
serverId: serverpod.serverId,
timestamp: timestamp,
isHealthy: await paymentsApi.ping(),
value: 1,
granularity: 1,
),
];
},
);
3Watch it in Insights
Open Serverpod Insights to see live and historical metrics per server, with no extra agent to install.
System metrics
CPU load, memory usage, and request throughput are captured on a schedule for every server in your deployment.
Custom health checks
Register checks for the services your app depends on and store their results next to the built-in metrics, so a failing dependency is visible in the same place.
Historical time series
Metrics are written to your database, so you can chart trends over time and correlate a slowdown with a deployment or a traffic spike.
Everything included
Works with
Serverpod Insights Postgres
Frequently asked questions
Does Serverpod monitor CPU and memory?
Yes. CPU load and memory usage are sampled on a schedule for every server and stored in your database.
Can I add custom health checks?
Yes. Register a health check handler that returns your own metrics, and they appear alongside the built-in ones.
Where do I see the metrics?
In Serverpod Insights, and directly in your database, since metrics are stored as regular rows.
Does it run load tests or benchmarks?
Serverpod records runtime metrics from real traffic; dedicated load testing is a separate step you run against your server.
When should I not use this?
It is server health monitoring, not a full distributed tracing or APM suite. For deep cross-service traces, integrate a dedicated tracing tool.