Health Discovery Service (HDS)

service.health.v3.Capability

[service.health.v3.Capability proto]

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

{
  "health_check_protocols": []
}
Copy to clipboard
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]

{
  "node": "{...}",
  "capability": "{...}"
}
Copy to clipboard
node

(config.core.v3.Node)

capability

(service.health.v3.Capability)

service.health.v3.EndpointHealth

[service.health.v3.EndpointHealth proto]

{
  "endpoint": "{...}",
  "health_status": "..."
}
Copy to clipboard
endpoint

(config.endpoint.v3.Endpoint)

health_status

(config.core.v3.HealthStatus)

service.health.v3.LocalityEndpointsHealth

[service.health.v3.LocalityEndpointsHealth proto]

Group endpoint health by locality under each cluster.

{
  "locality": "{...}",
  "endpoints_health": []
}
Copy to clipboard
locality

(config.core.v3.Locality)

endpoints_health

(service.health.v3.EndpointHealth)

service.health.v3.ClusterEndpointsHealth

[service.health.v3.ClusterEndpointsHealth proto]

The health status of endpoints in a cluster. The cluster name and locality should match the corresponding fields in ClusterHealthCheck message.

{
  "cluster_name": "...",
  "locality_endpoints_health": []
}
Copy to clipboard
cluster_name

(string)

locality_endpoints_health

(service.health.v3.LocalityEndpointsHealth)

service.health.v3.EndpointHealthResponse

[service.health.v3.EndpointHealthResponse proto]

{
  "endpoints_health": [],
  "cluster_endpoints_health": []
}
Copy to clipboard
endpoints_health

(service.health.v3.EndpointHealth) Deprecated - Flat list of endpoint health information.

cluster_endpoints_health

(service.health.v3.ClusterEndpointsHealth) Organize Endpoint health information by cluster.

service.health.v3.HealthCheckRequestOrEndpointHealthResponse

[service.health.v3.HealthCheckRequestOrEndpointHealthResponse proto]

{
  "health_check_request": "{...}",
  "endpoint_health_response": "{...}"
}
Copy to clipboard
health_check_request

(service.health.v3.HealthCheckRequest)

Only one of health_check_request, endpoint_health_response may be set.

endpoint_health_response

(service.health.v3.EndpointHealthResponse)

Only one of health_check_request, endpoint_health_response may be set.

service.health.v3.LocalityEndpoints

[service.health.v3.LocalityEndpoints proto]

{
  "locality": "{...}",
  "endpoints": []
}
Copy to clipboard
locality

(config.core.v3.Locality)

endpoints

(config.endpoint.v3.Endpoint)

service.health.v3.ClusterHealthCheck

[service.health.v3.ClusterHealthCheck proto]

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": "...",
  "health_checks": [],
  "locality_endpoints": [],
  "transport_socket_matches": []
}
Copy to clipboard
cluster_name

(string)

health_checks

(config.core.v3.HealthCheck)

locality_endpoints

(service.health.v3.LocalityEndpoints)

transport_socket_matches

(config.cluster.v3.Cluster.TransportSocketMatch) Optional map that gets filtered by health_checks.transport_socket_match_criteria on connection when health checking. For more details, see config.cluster.v3.Cluster.transport_socket_matches.

service.health.v3.HealthCheckSpecifier

[service.health.v3.HealthCheckSpecifier proto]

{
  "cluster_health_checks": [],
  "interval": "{...}"
}
Copy to clipboard
cluster_health_checks

(service.health.v3.ClusterHealthCheck)

interval

(Duration) The default is 1 second.