GoDoxy
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 is the primary check. A valid Docker result is authoritative, so use_get and path are ignored and GoDoxy does not probe the upstream.
  • If a docker healthcheck is not configured or Docker cannot perform the check because of a client initialization, API, decoding, or timeout failure, the GoDoxy healthcheck is used as a fallback while Docker is retried on later intervals.
  • You can disable GoDoxy health probing by setting healthcheck.disable: true in the route file2 or in the docker labels3. To disable it for every route of a Docker container, set proxy.exclude: healthcheck4. Docker health monitoring remains enabled for Docker routes.

References

  1. 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
  2. Disable GoDoxy health probing in route file

    app:
      host: 10.0.0.1
      port: 8080
      healthcheck:
        disable: true
  3. Docker labels

    services:
      app:
        labels:
          proxy.#1.healthcheck.disable: true
  4. Every route of a Docker container

    services:
      app:
        labels:
          proxy.exclude: healthcheck

    Use proxy.exclude: proxy,healthcheck or proxy.exclude: all to exclude the routes from proxying as well. The boolean value true excludes only proxying for backward compatibility.

Implementations

Healthcheck TypeMethodHealthy ConditionUnhealthy Condition
HTTPSends HEAD or GET request to specified path (default: /)Server replies with a non-5xx HTTP responseConnection failure/error, 5xx reply
TCP/UDPDials a TCP or UDP connection to upstream serverConnection is establishedConnection cannot be established
File ServerChecks if root directory exists and is accessible by GoDoxy (os.Stat)Root directory exists and is accessibleOtherwise

Properties

PropertyDescriptionDefaultAllowed Values / Syntax
disableDisable GoDoxy probing (Docker health remains)falseboolean
pathRelative path (HTTP only)emptyempty or URI like /health
use_getUse GET method instead of HEAD (HTTP only)falseboolean
intervalHealth check interval5sduration
timeoutHealth check timeout5sduration
retriesHealth check retries before notifying unhealthy15s divided by intervalinteger

On this page