Files
dotfiles/systems/jeeves/monitoring/README.md
T
Richie bdf67e96f0
treefmt / nix fmt (pull_request) Successful in 5s
pytest / pytest (pull_request) Successful in 30s
test ebook search / test-ebook-search (pull_request) Successful in 34s
build_systems / build-brain (pull_request) Successful in 49s
build_systems / build-jeeves (pull_request) Successful in 2m14s
build_systems / build-bob (pull_request) Successful in 50s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m2s
build_systems / build-brain (push) Successful in 43s
treefmt / nix fmt (push) Successful in 5s
pytest / pytest (push) Successful in 36s
test ebook search / test-ebook-search (push) Successful in 37s
build_systems / build-bob (push) Successful in 43s
build_systems / build-rhapsody-in-green (push) Successful in 55s
build_systems / build-jeeves (push) Successful in 2m7s
feat(monitoring): add Portal-1 and Vultr dashboards
- scrape Portal-1 node metrics over Tailscale
- add a hardened Vultr billing and bandwidth exporter
- provision host health and infrastructure cost dashboards
2026-08-27 17:49:56 -04:00

953 B

Monitoring

Vultr API metrics

The vultr-exporter service reads its API token from:

/zfs/storage/secrets/services/vultr-exporter

Create the file on Jeeves as root with the following contents:

API_KEY=<Vultr API token>

The token needs read access to the Vultr Account and Billing APIs. Unrelated resource collectors are disabled in the packaged exporter.

Restrict the file to root and ensure the public egress IP used by Jeeves is allowed for the token in the Vultr API settings:

sudo chown root:root /zfs/storage/secrets/services/vultr-exporter
sudo chmod 600 /zfs/storage/secrets/services/vultr-exporter

The exporter listens on 127.0.0.1:9188; it is scraped by the local prometheus-main service every five minutes and is not exposed through the host firewall.

Portal-1 exposes its node exporter only through tailscale0 on port 9100. Jeeves reaches it using the Portal-1 Tailscale hostname.