Advanced Topics
Health monitoring
Configure health monitoring for GoDoxy
Behaviors
- Health monitoring is enabled by default for all services, including the excluded ones.
- If docker healthcheck1 is enabled, it will be used first. In this case,
use_getandpathwill be ignored. - In case docker healthcheck is not available (not enabled / failed to fetch), GoDoxy healthcheck will be used.
- You can disable health monitoring by setting
healthcheck.disable: truein the route file2 or in the docker labels3.
References
-
Health check in Docker compose and Dockerfile, e.g.
healthcheck: test: ["CMD", "curl", "-f", "http://localhost"] interval: 1m30s timeout: 10s retries: 3 start_period: 40s start_interval: 5s -
Disable health monitoring in route file
app: host: 10.0.0.1 port: 8080 healthcheck: disable: true -
Docker labels
services: app: labels: proxy.#1.healthcheck.disable: true
Implementations
| Healthcheck Type | Method | Healthy Condition | Unhealthy Condition |
|---|---|---|---|
| HTTP | Sends HEAD or GET request to specified path (default: /) | Server replies with a non-5xx HTTP response | Connection failure/error, 5xx reply |
| TCP/UDP | Dials a TCP or UDP connection to upstream server | Connection is established | Connection cannot be established |
| File Server | Checks if root directory exists and is accessible by GoDoxy (os.Stat) | Root directory exists and is accessible | Otherwise |
Properties
| Property | Description | Default | Allowed Values / Syntax |
|---|---|---|---|
| disable | Disable health monitoring | false | boolean |
| path | Relative path (HTTP only) | empty | empty or URI like /health |
| use_get | Use GET method instead of HEAD (HTTP only) | false | boolean |
| interval | Health check interval | 5s | duration |
| timeout | Health check timeout | 5s | duration |
| retries | Health check retries before notifying unhealthy | 15s divided by interval | integer |