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 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.

    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

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

    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

On this page