Monitoring
Health Endpoints
Section titled “Health Endpoints”| 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:
curl -H "Authorization: Bearer $HEALTH_CHECK_TOKEN" http://localhost:4000/api/v1/healthThe 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.
Sentry
Section titled “Sentry”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.
