envoy_service_health_v3

package
v1.14.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2022 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Capability_Protocol_name = map[int32]string{
		0: "HTTP",
		1: "TCP",
		2: "REDIS",
	}
	Capability_Protocol_value = map[string]int32{
		"HTTP":  0,
		"TCP":   1,
		"REDIS": 2,
	}
)

Enum value maps for Capability_Protocol.

View Source
var File_envoy_service_health_v3_hds_proto protoreflect.FileDescriptor

Functions

func RegisterHealthDiscoveryServiceServer

func RegisterHealthDiscoveryServiceServer(s *grpc.Server, srv HealthDiscoveryServiceServer)

Types

type Capability

type Capability struct {
	HealthCheckProtocols []Capability_Protocol `` /* 180-byte string literal not displayed */
	// contains filtered or unexported fields
}

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

func (*Capability) Descriptor deprecated

func (*Capability) Descriptor() ([]byte, []int)

Deprecated: Use Capability.ProtoReflect.Descriptor instead.

func (*Capability) GetHealthCheckProtocols

func (x *Capability) GetHealthCheckProtocols() []Capability_Protocol

func (*Capability) ProtoMessage

func (*Capability) ProtoMessage()

func (*Capability) ProtoReflect added in v1.7.0

func (x *Capability) ProtoReflect() protoreflect.Message

func (*Capability) Reset

func (x *Capability) Reset()

func (*Capability) String

func (x *Capability) String() string

func (*Capability) Validate

func (m *Capability) Validate() error

Validate checks the field values on Capability with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type CapabilityValidationError

type CapabilityValidationError struct {
	// contains filtered or unexported fields
}

CapabilityValidationError is the validation error returned by Capability.Validate if the designated constraints aren't met.

func (CapabilityValidationError) Cause

func (e CapabilityValidationError) Cause() error

Cause function returns cause value.

func (CapabilityValidationError) Error

Error satisfies the builtin error interface

func (CapabilityValidationError) ErrorName

func (e CapabilityValidationError) ErrorName() string

ErrorName returns error name.

func (CapabilityValidationError) Field

Field function returns field value.

func (CapabilityValidationError) Key

Key function returns key value.

func (CapabilityValidationError) Reason

func (e CapabilityValidationError) Reason() string

Reason function returns reason value.

type Capability_Protocol

type Capability_Protocol int32

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

const (
	Capability_HTTP  Capability_Protocol = 0
	Capability_TCP   Capability_Protocol = 1
	Capability_REDIS Capability_Protocol = 2
)

func (Capability_Protocol) Descriptor added in v1.7.0

func (Capability_Protocol) Enum added in v1.7.0

func (Capability_Protocol) EnumDescriptor deprecated

func (Capability_Protocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use Capability_Protocol.Descriptor instead.

func (Capability_Protocol) Number added in v1.7.0

func (Capability_Protocol) String

func (x Capability_Protocol) String() string

func (Capability_Protocol) Type added in v1.7.0

type ClusterEndpointsHealth added in v1.14.0

type ClusterEndpointsHealth struct {
	ClusterName             string                     `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	LocalityEndpointsHealth []*LocalityEndpointsHealth `` /* 132-byte string literal not displayed */
	// contains filtered or unexported fields
}

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

func (*ClusterEndpointsHealth) Descriptor deprecated added in v1.14.0

func (*ClusterEndpointsHealth) Descriptor() ([]byte, []int)

Deprecated: Use ClusterEndpointsHealth.ProtoReflect.Descriptor instead.

func (*ClusterEndpointsHealth) GetClusterName added in v1.14.0

func (x *ClusterEndpointsHealth) GetClusterName() string

func (*ClusterEndpointsHealth) GetLocalityEndpointsHealth added in v1.14.0

func (x *ClusterEndpointsHealth) GetLocalityEndpointsHealth() []*LocalityEndpointsHealth

func (*ClusterEndpointsHealth) ProtoMessage added in v1.14.0

func (*ClusterEndpointsHealth) ProtoMessage()

func (*ClusterEndpointsHealth) ProtoReflect added in v1.14.0

func (x *ClusterEndpointsHealth) ProtoReflect() protoreflect.Message

func (*ClusterEndpointsHealth) Reset added in v1.14.0

func (x *ClusterEndpointsHealth) Reset()

func (*ClusterEndpointsHealth) String added in v1.14.0

func (x *ClusterEndpointsHealth) String() string

func (*ClusterEndpointsHealth) Validate added in v1.14.0

func (m *ClusterEndpointsHealth) Validate() error

Validate checks the field values on ClusterEndpointsHealth with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type ClusterEndpointsHealthValidationError added in v1.14.0

type ClusterEndpointsHealthValidationError struct {
	// contains filtered or unexported fields
}

ClusterEndpointsHealthValidationError is the validation error returned by ClusterEndpointsHealth.Validate if the designated constraints aren't met.

func (ClusterEndpointsHealthValidationError) Cause added in v1.14.0

Cause function returns cause value.

func (ClusterEndpointsHealthValidationError) Error added in v1.14.0

Error satisfies the builtin error interface

func (ClusterEndpointsHealthValidationError) ErrorName added in v1.14.0

ErrorName returns error name.

func (ClusterEndpointsHealthValidationError) Field added in v1.14.0

Field function returns field value.

func (ClusterEndpointsHealthValidationError) Key added in v1.14.0

Key function returns key value.

func (ClusterEndpointsHealthValidationError) Reason added in v1.14.0

Reason function returns reason value.

type ClusterHealthCheck

type ClusterHealthCheck struct {
	ClusterName       string               `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	HealthChecks      []*v3.HealthCheck    `protobuf:"bytes,2,rep,name=health_checks,json=healthChecks,proto3" json:"health_checks,omitempty"`
	LocalityEndpoints []*LocalityEndpoints `protobuf:"bytes,3,rep,name=locality_endpoints,json=localityEndpoints,proto3" json:"locality_endpoints,omitempty"`
	// Optional map that gets filtered by :ref:`health_checks.transport_socket_match_criteria <envoy_api_field_config.core.v3.HealthCheck.transport_socket_match_criteria>`
	// on connection when health checking. For more details, see
	// :ref:`config.cluster.v3.Cluster.transport_socket_matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
	TransportSocketMatches []*v32.Cluster_TransportSocketMatch `` /* 129-byte string literal not displayed */
	// contains filtered or unexported fields
}

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.

func (*ClusterHealthCheck) Descriptor deprecated

func (*ClusterHealthCheck) Descriptor() ([]byte, []int)

Deprecated: Use ClusterHealthCheck.ProtoReflect.Descriptor instead.

func (*ClusterHealthCheck) GetClusterName

func (x *ClusterHealthCheck) GetClusterName() string

func (*ClusterHealthCheck) GetHealthChecks

func (x *ClusterHealthCheck) GetHealthChecks() []*v3.HealthCheck

func (*ClusterHealthCheck) GetLocalityEndpoints

func (x *ClusterHealthCheck) GetLocalityEndpoints() []*LocalityEndpoints

func (*ClusterHealthCheck) GetTransportSocketMatches added in v1.14.0

func (x *ClusterHealthCheck) GetTransportSocketMatches() []*v32.Cluster_TransportSocketMatch

func (*ClusterHealthCheck) ProtoMessage

func (*ClusterHealthCheck) ProtoMessage()

func (*ClusterHealthCheck) ProtoReflect added in v1.7.0

func (x *ClusterHealthCheck) ProtoReflect() protoreflect.Message

func (*ClusterHealthCheck) Reset

func (x *ClusterHealthCheck) Reset()

func (*ClusterHealthCheck) String

func (x *ClusterHealthCheck) String() string

func (*ClusterHealthCheck) Validate

func (m *ClusterHealthCheck) Validate() error

Validate checks the field values on ClusterHealthCheck with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type ClusterHealthCheckValidationError

type ClusterHealthCheckValidationError struct {
	// contains filtered or unexported fields
}

ClusterHealthCheckValidationError is the validation error returned by ClusterHealthCheck.Validate if the designated constraints aren't met.

func (ClusterHealthCheckValidationError) Cause

Cause function returns cause value.

func (ClusterHealthCheckValidationError) Error

Error satisfies the builtin error interface

func (ClusterHealthCheckValidationError) ErrorName

ErrorName returns error name.

func (ClusterHealthCheckValidationError) Field

Field function returns field value.

func (ClusterHealthCheckValidationError) Key

Key function returns key value.

func (ClusterHealthCheckValidationError) Reason

Reason function returns reason value.

type EndpointHealth

type EndpointHealth struct {
	Endpoint     *v31.Endpoint   `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	HealthStatus v3.HealthStatus `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*EndpointHealth) Descriptor deprecated

func (*EndpointHealth) Descriptor() ([]byte, []int)

Deprecated: Use EndpointHealth.ProtoReflect.Descriptor instead.

func (*EndpointHealth) GetEndpoint

func (x *EndpointHealth) GetEndpoint() *v31.Endpoint

func (*EndpointHealth) GetHealthStatus

func (x *EndpointHealth) GetHealthStatus() v3.HealthStatus

func (*EndpointHealth) ProtoMessage

func (*EndpointHealth) ProtoMessage()

func (*EndpointHealth) ProtoReflect added in v1.7.0

func (x *EndpointHealth) ProtoReflect() protoreflect.Message

func (*EndpointHealth) Reset

func (x *EndpointHealth) Reset()

func (*EndpointHealth) String

func (x *EndpointHealth) String() string

func (*EndpointHealth) Validate

func (m *EndpointHealth) Validate() error

Validate checks the field values on EndpointHealth with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type EndpointHealthResponse

type EndpointHealthResponse struct {

	// Deprecated - Flat list of endpoint health information.
	//
	// Deprecated: Do not use.
	EndpointsHealth []*EndpointHealth `protobuf:"bytes,1,rep,name=endpoints_health,json=endpointsHealth,proto3" json:"endpoints_health,omitempty"`
	// Organize Endpoint health information by cluster.
	ClusterEndpointsHealth []*ClusterEndpointsHealth `` /* 129-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*EndpointHealthResponse) Descriptor deprecated

func (*EndpointHealthResponse) Descriptor() ([]byte, []int)

Deprecated: Use EndpointHealthResponse.ProtoReflect.Descriptor instead.

func (*EndpointHealthResponse) GetClusterEndpointsHealth added in v1.14.0

func (x *EndpointHealthResponse) GetClusterEndpointsHealth() []*ClusterEndpointsHealth

func (*EndpointHealthResponse) GetEndpointsHealth deprecated

func (x *EndpointHealthResponse) GetEndpointsHealth() []*EndpointHealth

Deprecated: Do not use.

func (*EndpointHealthResponse) ProtoMessage

func (*EndpointHealthResponse) ProtoMessage()

func (*EndpointHealthResponse) ProtoReflect added in v1.7.0

func (x *EndpointHealthResponse) ProtoReflect() protoreflect.Message

func (*EndpointHealthResponse) Reset

func (x *EndpointHealthResponse) Reset()

func (*EndpointHealthResponse) String

func (x *EndpointHealthResponse) String() string

func (*EndpointHealthResponse) Validate

func (m *EndpointHealthResponse) Validate() error

Validate checks the field values on EndpointHealthResponse with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type EndpointHealthResponseValidationError

type EndpointHealthResponseValidationError struct {
	// contains filtered or unexported fields
}

EndpointHealthResponseValidationError is the validation error returned by EndpointHealthResponse.Validate if the designated constraints aren't met.

func (EndpointHealthResponseValidationError) Cause

Cause function returns cause value.

func (EndpointHealthResponseValidationError) Error

Error satisfies the builtin error interface

func (EndpointHealthResponseValidationError) ErrorName

ErrorName returns error name.

func (EndpointHealthResponseValidationError) Field

Field function returns field value.

func (EndpointHealthResponseValidationError) Key

Key function returns key value.

func (EndpointHealthResponseValidationError) Reason

Reason function returns reason value.

type EndpointHealthValidationError

type EndpointHealthValidationError struct {
	// contains filtered or unexported fields
}

EndpointHealthValidationError is the validation error returned by EndpointHealth.Validate if the designated constraints aren't met.

func (EndpointHealthValidationError) Cause

Cause function returns cause value.

func (EndpointHealthValidationError) Error

Error satisfies the builtin error interface

func (EndpointHealthValidationError) ErrorName

func (e EndpointHealthValidationError) ErrorName() string

ErrorName returns error name.

func (EndpointHealthValidationError) Field

Field function returns field value.

func (EndpointHealthValidationError) Key

Key function returns key value.

func (EndpointHealthValidationError) Reason

Reason function returns reason value.

type HealthCheckRequest

type HealthCheckRequest struct {
	Node       *v3.Node    `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	Capability *Capability `protobuf:"bytes,2,opt,name=capability,proto3" json:"capability,omitempty"`
	// contains filtered or unexported fields
}

func (*HealthCheckRequest) Descriptor deprecated

func (*HealthCheckRequest) Descriptor() ([]byte, []int)

Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead.

func (*HealthCheckRequest) GetCapability

func (x *HealthCheckRequest) GetCapability() *Capability

func (*HealthCheckRequest) GetNode

func (x *HealthCheckRequest) GetNode() *v3.Node

func (*HealthCheckRequest) ProtoMessage

func (*HealthCheckRequest) ProtoMessage()

func (*HealthCheckRequest) ProtoReflect added in v1.7.0

func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message

func (*HealthCheckRequest) Reset

func (x *HealthCheckRequest) Reset()

func (*HealthCheckRequest) String

func (x *HealthCheckRequest) String() string

func (*HealthCheckRequest) Validate

func (m *HealthCheckRequest) Validate() error

Validate checks the field values on HealthCheckRequest with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HealthCheckRequestOrEndpointHealthResponse

type HealthCheckRequestOrEndpointHealthResponse struct {

	// Types that are assignable to RequestType:
	//	*HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest
	//	*HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse
	RequestType isHealthCheckRequestOrEndpointHealthResponse_RequestType `protobuf_oneof:"request_type"`
	// contains filtered or unexported fields
}

func (*HealthCheckRequestOrEndpointHealthResponse) Descriptor deprecated

Deprecated: Use HealthCheckRequestOrEndpointHealthResponse.ProtoReflect.Descriptor instead.

func (*HealthCheckRequestOrEndpointHealthResponse) GetEndpointHealthResponse

func (*HealthCheckRequestOrEndpointHealthResponse) GetHealthCheckRequest

func (*HealthCheckRequestOrEndpointHealthResponse) GetRequestType

func (m *HealthCheckRequestOrEndpointHealthResponse) GetRequestType() isHealthCheckRequestOrEndpointHealthResponse_RequestType

func (*HealthCheckRequestOrEndpointHealthResponse) ProtoMessage

func (*HealthCheckRequestOrEndpointHealthResponse) ProtoReflect added in v1.7.0

func (*HealthCheckRequestOrEndpointHealthResponse) Reset

func (*HealthCheckRequestOrEndpointHealthResponse) String

func (*HealthCheckRequestOrEndpointHealthResponse) Validate

Validate checks the field values on HealthCheckRequestOrEndpointHealthResponse with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HealthCheckRequestOrEndpointHealthResponseValidationError

type HealthCheckRequestOrEndpointHealthResponseValidationError struct {
	// contains filtered or unexported fields
}

HealthCheckRequestOrEndpointHealthResponseValidationError is the validation error returned by HealthCheckRequestOrEndpointHealthResponse.Validate if the designated constraints aren't met.

func (HealthCheckRequestOrEndpointHealthResponseValidationError) Cause

Cause function returns cause value.

func (HealthCheckRequestOrEndpointHealthResponseValidationError) Error

Error satisfies the builtin error interface

func (HealthCheckRequestOrEndpointHealthResponseValidationError) ErrorName

ErrorName returns error name.

func (HealthCheckRequestOrEndpointHealthResponseValidationError) Field

Field function returns field value.

func (HealthCheckRequestOrEndpointHealthResponseValidationError) Key

Key function returns key value.

func (HealthCheckRequestOrEndpointHealthResponseValidationError) Reason

Reason function returns reason value.

type HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse

type HealthCheckRequestOrEndpointHealthResponse_EndpointHealthResponse struct {
	EndpointHealthResponse *EndpointHealthResponse `protobuf:"bytes,2,opt,name=endpoint_health_response,json=endpointHealthResponse,proto3,oneof"`
}

type HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest

type HealthCheckRequestOrEndpointHealthResponse_HealthCheckRequest struct {
	HealthCheckRequest *HealthCheckRequest `protobuf:"bytes,1,opt,name=health_check_request,json=healthCheckRequest,proto3,oneof"`
}

type HealthCheckRequestValidationError

type HealthCheckRequestValidationError struct {
	// contains filtered or unexported fields
}

HealthCheckRequestValidationError is the validation error returned by HealthCheckRequest.Validate if the designated constraints aren't met.

func (HealthCheckRequestValidationError) Cause

Cause function returns cause value.

func (HealthCheckRequestValidationError) Error

Error satisfies the builtin error interface

func (HealthCheckRequestValidationError) ErrorName

ErrorName returns error name.

func (HealthCheckRequestValidationError) Field

Field function returns field value.

func (HealthCheckRequestValidationError) Key

Key function returns key value.

func (HealthCheckRequestValidationError) Reason

Reason function returns reason value.

type HealthCheckSpecifier

type HealthCheckSpecifier struct {
	ClusterHealthChecks []*ClusterHealthCheck `protobuf:"bytes,1,rep,name=cluster_health_checks,json=clusterHealthChecks,proto3" json:"cluster_health_checks,omitempty"`
	// The default is 1 second.
	Interval *duration.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"`
	// contains filtered or unexported fields
}

func (*HealthCheckSpecifier) Descriptor deprecated

func (*HealthCheckSpecifier) Descriptor() ([]byte, []int)

Deprecated: Use HealthCheckSpecifier.ProtoReflect.Descriptor instead.

func (*HealthCheckSpecifier) GetClusterHealthChecks

func (x *HealthCheckSpecifier) GetClusterHealthChecks() []*ClusterHealthCheck

func (*HealthCheckSpecifier) GetInterval

func (x *HealthCheckSpecifier) GetInterval() *duration.Duration

func (*HealthCheckSpecifier) ProtoMessage

func (*HealthCheckSpecifier) ProtoMessage()

func (*HealthCheckSpecifier) ProtoReflect added in v1.7.0

func (x *HealthCheckSpecifier) ProtoReflect() protoreflect.Message

func (*HealthCheckSpecifier) Reset

func (x *HealthCheckSpecifier) Reset()

func (*HealthCheckSpecifier) String

func (x *HealthCheckSpecifier) String() string

func (*HealthCheckSpecifier) Validate

func (m *HealthCheckSpecifier) Validate() error

Validate checks the field values on HealthCheckSpecifier with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HealthCheckSpecifierValidationError

type HealthCheckSpecifierValidationError struct {
	// contains filtered or unexported fields
}

HealthCheckSpecifierValidationError is the validation error returned by HealthCheckSpecifier.Validate if the designated constraints aren't met.

func (HealthCheckSpecifierValidationError) Cause

Cause function returns cause value.

func (HealthCheckSpecifierValidationError) Error

Error satisfies the builtin error interface

func (HealthCheckSpecifierValidationError) ErrorName

ErrorName returns error name.

func (HealthCheckSpecifierValidationError) Field

Field function returns field value.

func (HealthCheckSpecifierValidationError) Key

Key function returns key value.

func (HealthCheckSpecifierValidationError) Reason

Reason function returns reason value.

type HealthDiscoveryServiceClient

type HealthDiscoveryServiceClient interface {
	// 1. Envoy starts up and if its can_healthcheck option in the static
	//    bootstrap config is enabled, sends HealthCheckRequest to the management
	//    server. It supplies its capabilities (which protocol it can health check
	//    with, what zone it resides in, etc.).
	// 2. In response to (1), the management server designates this Envoy as a
	//    healthchecker to health check a subset of all upstream hosts for a given
	//    cluster (for example upstream Host 1 and Host 2). It streams
	//    HealthCheckSpecifier messages with cluster related configuration for all
	//    clusters this Envoy is designated to health check. Subsequent
	//    HealthCheckSpecifier message will be sent on changes to:
	//    a. Endpoints to health checks
	//    b. Per cluster configuration change
	// 3. Envoy creates a health probe based on the HealthCheck config and sends
	//    it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck
	//    configuration Envoy waits upon the arrival of the probe response and
	//    looks at the content of the response to decide whether the endpoint is
	//    healthy or not. If a response hasn't been received within the timeout
	//    interval, the endpoint health status is considered TIMEOUT.
	// 4. Envoy reports results back in an EndpointHealthResponse message.
	//    Envoy streams responses as often as the interval configured by the
	//    management server in HealthCheckSpecifier.
	// 5. The management Server collects health statuses for all endpoints in the
	//    cluster (for all clusters) and uses this information to construct
	//    EndpointDiscoveryResponse messages.
	// 6. Once Envoy has a list of upstream endpoints to send traffic to, it load
	//    balances traffic to them without additional health checking. It may
	//    use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection
	//    failed to a particular endpoint to account for health status propagation
	//    delay between HDS and EDS).
	// By default, can_healthcheck is true. If can_healthcheck is false, Cluster
	// configuration may not contain HealthCheck message.
	// TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above
	// invariant?
	// TODO(htuch): Add @amb67's diagram.
	StreamHealthCheck(ctx context.Context, opts ...grpc.CallOption) (HealthDiscoveryService_StreamHealthCheckClient, error)
	// TODO(htuch): Unlike the gRPC version, there is no stream-based binding of
	// request/response. Should we add an identifier to the HealthCheckSpecifier
	// to bind with the response?
	FetchHealthCheck(ctx context.Context, in *HealthCheckRequestOrEndpointHealthResponse, opts ...grpc.CallOption) (*HealthCheckSpecifier, error)
}

HealthDiscoveryServiceClient is the client API for HealthDiscoveryService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

type HealthDiscoveryServiceServer

type HealthDiscoveryServiceServer interface {
	// 1. Envoy starts up and if its can_healthcheck option in the static
	//    bootstrap config is enabled, sends HealthCheckRequest to the management
	//    server. It supplies its capabilities (which protocol it can health check
	//    with, what zone it resides in, etc.).
	// 2. In response to (1), the management server designates this Envoy as a
	//    healthchecker to health check a subset of all upstream hosts for a given
	//    cluster (for example upstream Host 1 and Host 2). It streams
	//    HealthCheckSpecifier messages with cluster related configuration for all
	//    clusters this Envoy is designated to health check. Subsequent
	//    HealthCheckSpecifier message will be sent on changes to:
	//    a. Endpoints to health checks
	//    b. Per cluster configuration change
	// 3. Envoy creates a health probe based on the HealthCheck config and sends
	//    it to endpoint(ip:port) of Host 1 and 2. Based on the HealthCheck
	//    configuration Envoy waits upon the arrival of the probe response and
	//    looks at the content of the response to decide whether the endpoint is
	//    healthy or not. If a response hasn't been received within the timeout
	//    interval, the endpoint health status is considered TIMEOUT.
	// 4. Envoy reports results back in an EndpointHealthResponse message.
	//    Envoy streams responses as often as the interval configured by the
	//    management server in HealthCheckSpecifier.
	// 5. The management Server collects health statuses for all endpoints in the
	//    cluster (for all clusters) and uses this information to construct
	//    EndpointDiscoveryResponse messages.
	// 6. Once Envoy has a list of upstream endpoints to send traffic to, it load
	//    balances traffic to them without additional health checking. It may
	//    use inline healthcheck (i.e. consider endpoint UNHEALTHY if connection
	//    failed to a particular endpoint to account for health status propagation
	//    delay between HDS and EDS).
	// By default, can_healthcheck is true. If can_healthcheck is false, Cluster
	// configuration may not contain HealthCheck message.
	// TODO(htuch): How is can_healthcheck communicated to CDS to ensure the above
	// invariant?
	// TODO(htuch): Add @amb67's diagram.
	StreamHealthCheck(HealthDiscoveryService_StreamHealthCheckServer) error
	// TODO(htuch): Unlike the gRPC version, there is no stream-based binding of
	// request/response. Should we add an identifier to the HealthCheckSpecifier
	// to bind with the response?
	FetchHealthCheck(context.Context, *HealthCheckRequestOrEndpointHealthResponse) (*HealthCheckSpecifier, error)
}

HealthDiscoveryServiceServer is the server API for HealthDiscoveryService service.

type HealthDiscoveryService_StreamHealthCheckClient

type HealthDiscoveryService_StreamHealthCheckClient interface {
	Send(*HealthCheckRequestOrEndpointHealthResponse) error
	Recv() (*HealthCheckSpecifier, error)
	grpc.ClientStream
}

type HealthDiscoveryService_StreamHealthCheckServer

type HealthDiscoveryService_StreamHealthCheckServer interface {
	Send(*HealthCheckSpecifier) error
	Recv() (*HealthCheckRequestOrEndpointHealthResponse, error)
	grpc.ServerStream
}

type LocalityEndpoints

type LocalityEndpoints struct {
	Locality  *v3.Locality    `protobuf:"bytes,1,opt,name=locality,proto3" json:"locality,omitempty"`
	Endpoints []*v31.Endpoint `protobuf:"bytes,2,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
	// contains filtered or unexported fields
}

func (*LocalityEndpoints) Descriptor deprecated

func (*LocalityEndpoints) Descriptor() ([]byte, []int)

Deprecated: Use LocalityEndpoints.ProtoReflect.Descriptor instead.

func (*LocalityEndpoints) GetEndpoints

func (x *LocalityEndpoints) GetEndpoints() []*v31.Endpoint

func (*LocalityEndpoints) GetLocality

func (x *LocalityEndpoints) GetLocality() *v3.Locality

func (*LocalityEndpoints) ProtoMessage

func (*LocalityEndpoints) ProtoMessage()

func (*LocalityEndpoints) ProtoReflect added in v1.7.0

func (x *LocalityEndpoints) ProtoReflect() protoreflect.Message

func (*LocalityEndpoints) Reset

func (x *LocalityEndpoints) Reset()

func (*LocalityEndpoints) String

func (x *LocalityEndpoints) String() string

func (*LocalityEndpoints) Validate

func (m *LocalityEndpoints) Validate() error

Validate checks the field values on LocalityEndpoints with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type LocalityEndpointsHealth added in v1.14.0

type LocalityEndpointsHealth struct {
	Locality        *v3.Locality      `protobuf:"bytes,1,opt,name=locality,proto3" json:"locality,omitempty"`
	EndpointsHealth []*EndpointHealth `protobuf:"bytes,2,rep,name=endpoints_health,json=endpointsHealth,proto3" json:"endpoints_health,omitempty"`
	// contains filtered or unexported fields
}

Group endpoint health by locality under each cluster.

func (*LocalityEndpointsHealth) Descriptor deprecated added in v1.14.0

func (*LocalityEndpointsHealth) Descriptor() ([]byte, []int)

Deprecated: Use LocalityEndpointsHealth.ProtoReflect.Descriptor instead.

func (*LocalityEndpointsHealth) GetEndpointsHealth added in v1.14.0

func (x *LocalityEndpointsHealth) GetEndpointsHealth() []*EndpointHealth

func (*LocalityEndpointsHealth) GetLocality added in v1.14.0

func (x *LocalityEndpointsHealth) GetLocality() *v3.Locality

func (*LocalityEndpointsHealth) ProtoMessage added in v1.14.0

func (*LocalityEndpointsHealth) ProtoMessage()

func (*LocalityEndpointsHealth) ProtoReflect added in v1.14.0

func (x *LocalityEndpointsHealth) ProtoReflect() protoreflect.Message

func (*LocalityEndpointsHealth) Reset added in v1.14.0

func (x *LocalityEndpointsHealth) Reset()

func (*LocalityEndpointsHealth) String added in v1.14.0

func (x *LocalityEndpointsHealth) String() string

func (*LocalityEndpointsHealth) Validate added in v1.14.0

func (m *LocalityEndpointsHealth) Validate() error

Validate checks the field values on LocalityEndpointsHealth with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type LocalityEndpointsHealthValidationError added in v1.14.0

type LocalityEndpointsHealthValidationError struct {
	// contains filtered or unexported fields
}

LocalityEndpointsHealthValidationError is the validation error returned by LocalityEndpointsHealth.Validate if the designated constraints aren't met.

func (LocalityEndpointsHealthValidationError) Cause added in v1.14.0

Cause function returns cause value.

func (LocalityEndpointsHealthValidationError) Error added in v1.14.0

Error satisfies the builtin error interface

func (LocalityEndpointsHealthValidationError) ErrorName added in v1.14.0

ErrorName returns error name.

func (LocalityEndpointsHealthValidationError) Field added in v1.14.0

Field function returns field value.

func (LocalityEndpointsHealthValidationError) Key added in v1.14.0

Key function returns key value.

func (LocalityEndpointsHealthValidationError) Reason added in v1.14.0

Reason function returns reason value.

type LocalityEndpointsValidationError

type LocalityEndpointsValidationError struct {
	// contains filtered or unexported fields
}

LocalityEndpointsValidationError is the validation error returned by LocalityEndpoints.Validate if the designated constraints aren't met.

func (LocalityEndpointsValidationError) Cause

Cause function returns cause value.

func (LocalityEndpointsValidationError) Error

Error satisfies the builtin error interface

func (LocalityEndpointsValidationError) ErrorName

ErrorName returns error name.

func (LocalityEndpointsValidationError) Field

Field function returns field value.

func (LocalityEndpointsValidationError) Key

Key function returns key value.

func (LocalityEndpointsValidationError) Reason

Reason function returns reason value.

type UnimplementedHealthDiscoveryServiceServer

type UnimplementedHealthDiscoveryServiceServer struct {
}

UnimplementedHealthDiscoveryServiceServer can be embedded to have forward compatible implementations.

func (*UnimplementedHealthDiscoveryServiceServer) StreamHealthCheck

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL