Monitoring & health
A few lightweight signals tell you Ticketra is healthy.
Health endpoint
curl -k https://<host>/api/v1/health
{ "status": "healthy", "database": "connected", "opensearch": "connected", "version": "1.0.0" }
- Returns 200 when both PostgreSQL and OpenSearch are reachable, 503 (
degraded) otherwise. - The endpoint is exempt from rate limiting, so it's safe to poll from an uptime monitor or container healthcheck.
Container health
docker compose ps # each service should be "healthy"
docker stats # resource usage against the configured limits
The stack is tuned to fit ~6 GB across the four containers (frontend 512M, api 1.5G, postgres 2G, opensearch 2G). Watch for a container repeatedly hitting its memory limit.
Logs
docker compose logs -f api # application logs (Winston)
docker compose logs -f frontend # Nginx access/error
The API logs each request with method, path, status, and duration — useful for spotting error spikes or slow endpoints.
What to watch
| Signal | Why |
|---|---|
health non-200 | Database or OpenSearch connectivity lost. |
| Rising 5xx rate in API logs | Application errors — investigate the stack traces in logs (they're not exposed to clients). |
| Backup job failures | A silent backup failure leaves you without recovery — see the backup guide. |
| OpenSearch unhealthy | Search degrades; the index rebuilds from PostgreSQL but confirm it recovers. |
| Container OOM/restarts | Resource limits — review docker stats. |
Audit log
For security monitoring (who did what), use the in-app Audit Log rather than container logs. It's append-only and records actor, action, target, and outcome.
Related
Was this page helpful?