Skip to content

Probes & adapters

Probes are attached per node, per axis, through the UI. Each probe is backed by an adapter — a small module that knows how to check one kind of thing.

AdapterChecksCredentials
tcpTCP connect to a host/portnone
httpHTTP(S) request, status/latencynone
k8sIn-cluster Kubernetes summaryin-cluster ServiceAccount
proxmoxProxmox VE node/guest status (PVE API)API token
systemnode_exporter scrape (:9100/metrics)none

All adapters degrade gracefully — when their environment isn’t configured, they simply return unknown rather than erroring.

Mint a token at PVE → Datacenter → Permissions → API Tokens, then set:

Terminal window
SORACK_PROXMOX_USER=user@pam!tokenid
SORACK_PROXMOX_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SORACK_PROXMOX_INSECURE=true # only if PVE serves a self-signed cert

No credentials. Install node_exporter on the host (a few lines of systemd) and the system probe scrapes :9100/metrics.

Uses the in-cluster ServiceAccount — no env to set. RBAC lives in deploy/dev/rbac.yaml.

Adding a source is deliberately small: one file under api/src/health/adapters/ and one register call. An adapter exports a probe function that takes the node’s probe config and returns a status plus optional metrics; registering it makes the probe type selectable in the UI.