Skip to content
GET /registry/health

Reports this node only, not the fleet; behind a load balancer each call may hit a different node. Answers while the node is booting, draining or not serving, so it can explain a failing readiness probe.

Authentication

pinboard:operator scope. The response is not filtered by the claim.

Example

curl https://pinboard.example.com/registry/health \
  -H "Authorization: Bearer $PINBOARD_OPERATOR_TOKEN"

Response

200

FieldTypeDescription
resolutionsobjectCount per resolution outcome since this node started. Keys below.
connectionsintegerForwards and WebSocket tunnels open on this node now.
quarantineMsintegerLongest remaining cold-start window across buckets; 0 when none.
uptimeMsintegerSince this node's Pinboard instance was created.
rssBytesintegerProcess resident memory. Absent on runtimes without process.memoryUsage (workerd).

resolutions keys:

KeyCounted when
forwardA request resolved to a worker
unknown-ns404 unknown namespace
no-backends503 no live backends for namespace
quarantine503 registry cold start, retry
not-serving503 not the serving fleet
no-hostname-workers503 no live workers for hostname
binding-quarantine503 hostname binding displaced, retry
takeover-pending503 takeover in progress, retry or placement held by another hostname
env-conflict503 hostname bindings inconsistent, retry
nackA worker refused an activation (Pinned-Refusal)

Re-resolves count again, so one request can add more than one.

{
  "resolutions": {
    "forward": 18234,
    "unknown-ns": 3,
    "no-backends": 0,
    "quarantine": 12,
    "not-serving": 0,
    "no-hostname-workers": 0,
    "binding-quarantine": 0,
    "takeover-pending": 0,
    "env-conflict": 0,
    "nack": 1
  },
  "connections": 41,
  "quarantineMs": 0,
  "uptimeMs": 7261034,
  "rssBytes": 98304000
}

Errors

StatusBodyWhen
401{"error":"unauthorized"}No accepted credential
403{"error":"forbidden"}No pinboard:operator scope, or malformed pinboard claim
404{"error":"not found"}Method other than GET (after the serving check, so a non-serving node answers 503)