Skip to main content

Monitoring & health

Operator

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

SignalWhy
health non-200Database or OpenSearch connectivity lost.
Rising 5xx rate in API logsApplication errors — investigate the stack traces in logs (they're not exposed to clients).
Backup job failuresA silent backup failure leaves you without recovery — see the backup guide.
OpenSearch unhealthySearch degrades; the index rebuilds from PostgreSQL but confirm it recovers.
Container OOM/restartsResource 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.