Health Discovery Service (HDS)

    Defines supported protocols etc, so the management server can assign proper endpoints to healthcheck.

    health_check_protocols

    (service.health.v3.Capability.Protocol)

    Enum service.health.v3.Capability.Protocol

    [service.health.v3.Capability.Protocol proto]

    Different Envoy instances may have different capabilities (e.g. Redis) and/or have ports enabled for different protocols.

    HTTP

    (DEFAULT)

    TCP

    REDIS

    service.health.v3.HealthCheckRequest

    [service.health.v3.HealthCheckRequest proto]

    1. "node": "{...}",
    2. "capability": "{...}"
    3. }

    node

    ()

    capability

    [service.health.v3.EndpointHealth proto]

    endpoint

    ()

    health_status

    (config.core.v3.HealthStatus)

    service.health.v3.EndpointHealthResponse

    [service.health.v3.EndpointHealthResponse proto]

    1. {

    endpoints_health

    ()

    service.health.v3.HealthCheckRequestOrEndpointHealthResponse

    health_check_request

    (service.health.v3.HealthCheckRequest)

    Only one of , endpoint_health_response may be set.

    endpoint_health_response

    ()

    Only one of health_check_request, may be set.

    1. {
    2. "locality": "{...}",
    3. "endpoints": []

    locality

    (config.core.v3.Locality)

    endpoints

    ()

    service.health.v3.ClusterHealthCheck

    The cluster name and locality is provided to Envoy for the endpoints that it health checks to support statistics reporting, logging and debugging by the Envoy instance (outside of HDS). For maximum usefulness, it should match the same cluster structure as that provided by EDS.

    cluster_name

    (string)

    health_checks

    ()

    locality_endpoints

    (service.health.v3.LocalityEndpoints)

    service.health.v3.HealthCheckSpecifier

    [service.health.v3.HealthCheckSpecifier proto]

    1. {
    2. "cluster_health_checks": [],
    3. "interval": "{...}"

    cluster_health_checks

    ()

    (Duration) The default is 1 second.