Skip to main content
GET
/
health
Health check
curl --request GET \
  --url https://api.example.com/health
This is a VPS agent endpoint at https://agent.dbhost.app/health, not part of the control plane API. It requires Authorization: Bearer <API_KEY>. Use GET /healthz for unauthenticated liveness checks.
Returns detailed health and capacity metrics for PostgreSQL, PgBouncer, server disk usage, managed PostgreSQL data size, server memory, load averages, and current PgBouncer pool/client state.

Response

200 OK
{
  "status": "healthy",
  "postgres_connected": true,
  "pgbouncer_running": true,
  "server_disk_total_bytes": 42300000000,
  "server_disk_total_pretty": "42.3 GB",
  "server_disk_used_bytes": 1900000000,
  "server_disk_used_pretty": "1.9 GB",
  "server_disk_used_percent": 4,
  "server_disk_free_bytes": 40400000000,
  "server_disk_free_pretty": "40.4 GB",
  "postgres_data_used_bytes": 150000000,
  "postgres_data_used_pretty": "143.1 MB",
  "postgres_managed_database_count": 3,
  "memory": {
    "total_bytes": 4230000000,
    "total_pretty": "4.2 GB",
    "used_bytes": 1710000000,
    "used_pretty": "1.7 GB",
    "available_bytes": 2520000000,
    "available_pretty": "2.5 GB",
    "used_percent": 40
  },
  "load": {
    "one_minute": 0.12,
    "five_minutes": 0.21,
    "fifteen_minutes": 0.18
  },
  "pgbouncer_pool_count": 3,
  "pgbouncer_client_count": 5,
  "pgbouncer_active_client_count": 3,
  "pgbouncer_pools": [
    {
      "database": "my-app",
      "user": "my-app",
      "client_active": 2,
      "client_waiting": 0,
      "server_active": 1,
      "server_idle": 1
    }
  ],
  "pgbouncer_clients": [
    {
      "database": "my-app",
      "user": "my-app",
      "client_addr": "203.0.113.10",
      "application_name": "web",
      "connected_at": "2026-04-05T16:34:22+00:00",
      "state": "active"
    }
  ],
  "disk_total_bytes": 42300000000,
  "disk_total_pretty": "42.3 GB",
  "disk_used_bytes": 1900000000,
  "disk_used_pretty": "1.9 GB",
  "disk_used_percent": 4,
  "disk_free_bytes": 40400000000,
  "disk_free_pretty": "40.4 GB"
}

Response notes

  • memory and load are nullable and may be omitted if the VPS cannot collect them.
  • pgbouncer_pools excludes the PgBouncer admin database and focuses on managed tenant pools.
  • pgbouncer_clients reflects current live PgBouncer client sessions, not the historical connection log stored in the control plane database.

Status values

StatusMeaning
healthyBoth PostgreSQL and PgBouncer are running
degradedOne or both services are down, or the agent could not collect detailed PostgreSQL capacity metrics