Skip to content

Health monitoring ​

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_get and path will 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: true in the route file2 or in the docker labels3.

References ​

  1. Health check in Docker compose and Dockerfile, e.g.

    yaml
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost']
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
      start_interval: 5s
  2. Disable health monitoring in route file

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

    yaml
    services:
      app:
        labels:
          proxy.#1.healthcheck.disable: true

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 health monitoringfalseboolean
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

Released under the MIT License.