Health Checks
Configure health checks for automatic crash detection and restart.
SMLL automatically monitors the health of your services and restarts unhealthy containers. Health checks ensure your services are actually working, not just running.
Default health checks
By default, SMLL monitors:
- Process health: Is the container process running?
- Startup probe: Does the container start within the timeout?
For web services, an HTTP health check is also configured automatically.
HTTP health checks
Web services get an automatic HTTP health check:
| Setting | Default |
|---|---|
| Path | / |
| Port | Service port |
| Interval | 10 seconds |
| Timeout | 5 seconds |
| Failure threshold | 3 consecutive failures |
| Success threshold | 1 success |
A service is considered unhealthy after 3 consecutive failed health checks (30 seconds). Unhealthy containers are restarted automatically.
Custom health check path
To use a custom health check endpoint:
- Navigate to your service's Settings tab
- Under Health Check, set the path (e.g.,
/healthor/healthz) - Click Save
Your health check endpoint should:
- Return a
200status code when healthy - Return a
5xxstatus code when unhealthy - Respond within 5 seconds
- Check critical dependencies (database connection, required services)
Crash detection
SMLL tracks container restarts and reports crash loops in the service dashboard. A service is flagged as crash-looping if it restarts more than 5 times in 10 minutes.
Crash-looping services trigger an automatic alert if alerting is configured.
Startup grace period
New deployments get a startup grace period before health checks begin. This allows time for the application to initialize, load data, and become ready to serve traffic.
The default startup timeout is 120 seconds. If your service doesn't pass a health check within this window, the deployment is marked as failed and rolled back.