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.

Get Started

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

CPU and memory metrics
Request throughput
Custom application health checks
Per-server breakdown
Historical time series in your database
Insights dashboard visualization

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.

Stay up-to-date

Our mailing list keeps you up-to-date with new Serverpod releases and features. You will get an email about once a month or when something big is happening. We promise to keep it relevant and we have a strict no-spam policy.

© 2026 Serverpod AB
Built with Serverpod - Hosted on Serverpod Cloud