Skip to content

Monitoring

Endpoint Auth Purpose
GET /api/v1/health/live none Process liveness
GET /api/v1/health/ready none Config readiness
GET /api/v1/health bearer Operator and uptime checks

Set HEALTH_CHECK_TOKEN, then call the authenticated endpoint:

Terminal window
curl -H "Authorization: Bearer $HEALTH_CHECK_TOKEN" http://localhost:4000/api/v1/health

The response is JSON with status, timestamp, environment, uptime, and a checks payload. Boot fails in production if HEALTH_CHECK_TOKEN is still CHANGE_ME_HEALTH_CHECK_TOKEN after the hardening release.

Set SENTRY_DSN to enable Issue capture in html2rss-web (Rack middleware and operational failures). Structured log intake is opt-in: set SENTRY_ENABLE_LOGS=true explicitly — a DSN alone does not forward stdout logs.

Use separate Sentry projects for html2rss-web and botasaurus-scrape-api. Never share a DSN.

Env var Service
SENTRY_DSN html2rss-web
BOTASAURUS_SENTRY_DSN botasaurus-scrape-api

In docker-compose.yml, the botasaurus service maps BOTASAURUS_SENTRY_DSN into its own SENTRY_DSN, requires it at startup, and does not fall back to the web project’s DSN.

For on-call triage, alert rules, and dashboard baselines, see the Sentry runbook in the web repo.