Documentation
¶
Index ¶
- Variables
- func RegisterLoadReportingServiceServer(s *grpc.Server, srv LoadReportingServiceServer)
- type LoadReportingServiceClient
- type LoadReportingServiceServer
- type LoadReportingService_StreamLoadStatsClient
- type LoadReportingService_StreamLoadStatsServer
- type LoadStatsRequest
- func (*LoadStatsRequest) Descriptor() ([]byte, []int)deprecated
- func (x *LoadStatsRequest) GetClusterStats() []*v31.ClusterStats
- func (x *LoadStatsRequest) GetNode() *v3.Node
- func (*LoadStatsRequest) ProtoMessage()
- func (x *LoadStatsRequest) ProtoReflect() protoreflect.Message
- func (x *LoadStatsRequest) Reset()
- func (x *LoadStatsRequest) String() string
- func (m *LoadStatsRequest) Validate() error
- type LoadStatsRequestValidationError
- func (e LoadStatsRequestValidationError) Cause() error
- func (e LoadStatsRequestValidationError) Error() string
- func (e LoadStatsRequestValidationError) ErrorName() string
- func (e LoadStatsRequestValidationError) Field() string
- func (e LoadStatsRequestValidationError) Key() bool
- func (e LoadStatsRequestValidationError) Reason() string
- type LoadStatsResponse
- func (*LoadStatsResponse) Descriptor() ([]byte, []int)deprecated
- func (x *LoadStatsResponse) GetClusters() []string
- func (x *LoadStatsResponse) GetLoadReportingInterval() *duration.Duration
- func (x *LoadStatsResponse) GetReportEndpointGranularity() bool
- func (x *LoadStatsResponse) GetSendAllClusters() bool
- func (*LoadStatsResponse) ProtoMessage()
- func (x *LoadStatsResponse) ProtoReflect() protoreflect.Message
- func (x *LoadStatsResponse) Reset()
- func (x *LoadStatsResponse) String() string
- func (m *LoadStatsResponse) Validate() error
- type LoadStatsResponseValidationError
- func (e LoadStatsResponseValidationError) Cause() error
- func (e LoadStatsResponseValidationError) Error() string
- func (e LoadStatsResponseValidationError) ErrorName() string
- func (e LoadStatsResponseValidationError) Field() string
- func (e LoadStatsResponseValidationError) Key() bool
- func (e LoadStatsResponseValidationError) Reason() string
- type UnimplementedLoadReportingServiceServer
Constants ¶
This section is empty.
Variables ¶
var File_envoy_service_load_stats_v3_lrs_proto protoreflect.FileDescriptor
Functions ¶
func RegisterLoadReportingServiceServer ¶
func RegisterLoadReportingServiceServer(s *grpc.Server, srv LoadReportingServiceServer)
Types ¶
type LoadReportingServiceClient ¶
type LoadReportingServiceClient interface {
// Advanced API to allow for multi-dimensional load balancing by remote
// server. For receiving LB assignments, the steps are:
// 1, The management server is configured with per cluster/zone/load metric
// capacity configuration. The capacity configuration definition is
// outside of the scope of this document.
// 2. Envoy issues a standard {Stream,Fetch}Endpoints request for the clusters
// to balance.
//
// Independently, Envoy will initiate a StreamLoadStats bidi stream with a
// management server:
// 1. Once a connection establishes, the management server publishes a
// LoadStatsResponse for all clusters it is interested in learning load
// stats about.
// 2. For each cluster, Envoy load balances incoming traffic to upstream hosts
// based on per-zone weights and/or per-instance weights (if specified)
// based on intra-zone LbPolicy. This information comes from the above
// {Stream,Fetch}Endpoints.
// 3. When upstream hosts reply, they optionally add header <define header
// name> with ASCII representation of EndpointLoadMetricStats.
// 4. Envoy aggregates load reports over the period of time given to it in
// LoadStatsResponse.load_reporting_interval. This includes aggregation
// stats Envoy maintains by itself (total_requests, rpc_errors etc.) as
// well as load metrics from upstream hosts.
// 5. When the timer of load_reporting_interval expires, Envoy sends new
// LoadStatsRequest filled with load reports for each cluster.
// 6. The management server uses the load reports from all reported Envoys
// from around the world, computes global assignment and prepares traffic
// assignment destined for each zone Envoys are located in. Goto 2.
StreamLoadStats(ctx context.Context, opts ...grpc.CallOption) (LoadReportingService_StreamLoadStatsClient, error)
}
LoadReportingServiceClient is the client API for LoadReportingService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewLoadReportingServiceClient ¶
func NewLoadReportingServiceClient(cc grpc.ClientConnInterface) LoadReportingServiceClient
type LoadReportingServiceServer ¶
type LoadReportingServiceServer interface {
// Advanced API to allow for multi-dimensional load balancing by remote
// server. For receiving LB assignments, the steps are:
// 1, The management server is configured with per cluster/zone/load metric
// capacity configuration. The capacity configuration definition is
// outside of the scope of this document.
// 2. Envoy issues a standard {Stream,Fetch}Endpoints request for the clusters
// to balance.
//
// Independently, Envoy will initiate a StreamLoadStats bidi stream with a
// management server:
// 1. Once a connection establishes, the management server publishes a
// LoadStatsResponse for all clusters it is interested in learning load
// stats about.
// 2. For each cluster, Envoy load balances incoming traffic to upstream hosts
// based on per-zone weights and/or per-instance weights (if specified)
// based on intra-zone LbPolicy. This information comes from the above
// {Stream,Fetch}Endpoints.
// 3. When upstream hosts reply, they optionally add header <define header
// name> with ASCII representation of EndpointLoadMetricStats.
// 4. Envoy aggregates load reports over the period of time given to it in
// LoadStatsResponse.load_reporting_interval. This includes aggregation
// stats Envoy maintains by itself (total_requests, rpc_errors etc.) as
// well as load metrics from upstream hosts.
// 5. When the timer of load_reporting_interval expires, Envoy sends new
// LoadStatsRequest filled with load reports for each cluster.
// 6. The management server uses the load reports from all reported Envoys
// from around the world, computes global assignment and prepares traffic
// assignment destined for each zone Envoys are located in. Goto 2.
StreamLoadStats(LoadReportingService_StreamLoadStatsServer) error
}
LoadReportingServiceServer is the server API for LoadReportingService service.
type LoadReportingService_StreamLoadStatsClient ¶
type LoadReportingService_StreamLoadStatsClient interface {
Send(*LoadStatsRequest) error
Recv() (*LoadStatsResponse, error)
grpc.ClientStream
}
type LoadReportingService_StreamLoadStatsServer ¶
type LoadReportingService_StreamLoadStatsServer interface {
Send(*LoadStatsResponse) error
Recv() (*LoadStatsRequest, error)
grpc.ServerStream
}
type LoadStatsRequest ¶
type LoadStatsRequest struct {
// Node identifier for Envoy instance.
Node *v3.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
// A list of load stats to report.
ClusterStats []*v31.ClusterStats `protobuf:"bytes,2,rep,name=cluster_stats,json=clusterStats,proto3" json:"cluster_stats,omitempty"`
// contains filtered or unexported fields
}
A load report Envoy sends to the management server.
func (*LoadStatsRequest) Descriptor
deprecated
func (*LoadStatsRequest) Descriptor() ([]byte, []int)
Deprecated: Use LoadStatsRequest.ProtoReflect.Descriptor instead.
func (*LoadStatsRequest) GetClusterStats ¶
func (x *LoadStatsRequest) GetClusterStats() []*v31.ClusterStats
func (*LoadStatsRequest) GetNode ¶
func (x *LoadStatsRequest) GetNode() *v3.Node
func (*LoadStatsRequest) ProtoMessage ¶
func (*LoadStatsRequest) ProtoMessage()
func (*LoadStatsRequest) ProtoReflect ¶ added in v0.9.6
func (x *LoadStatsRequest) ProtoReflect() protoreflect.Message
func (*LoadStatsRequest) Reset ¶
func (x *LoadStatsRequest) Reset()
func (*LoadStatsRequest) String ¶
func (x *LoadStatsRequest) String() string
func (*LoadStatsRequest) Validate ¶
func (m *LoadStatsRequest) Validate() error
Validate checks the field values on LoadStatsRequest with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.
type LoadStatsRequestValidationError ¶
type LoadStatsRequestValidationError struct {
// contains filtered or unexported fields
}
LoadStatsRequestValidationError is the validation error returned by LoadStatsRequest.Validate if the designated constraints aren't met.
func (LoadStatsRequestValidationError) Cause ¶
func (e LoadStatsRequestValidationError) Cause() error
Cause function returns cause value.
func (LoadStatsRequestValidationError) Error ¶
func (e LoadStatsRequestValidationError) Error() string
Error satisfies the builtin error interface
func (LoadStatsRequestValidationError) ErrorName ¶
func (e LoadStatsRequestValidationError) ErrorName() string
ErrorName returns error name.
func (LoadStatsRequestValidationError) Field ¶
func (e LoadStatsRequestValidationError) Field() string
Field function returns field value.
func (LoadStatsRequestValidationError) Key ¶
func (e LoadStatsRequestValidationError) Key() bool
Key function returns key value.
func (LoadStatsRequestValidationError) Reason ¶
func (e LoadStatsRequestValidationError) Reason() string
Reason function returns reason value.
type LoadStatsResponse ¶
type LoadStatsResponse struct {
// Clusters to report stats for.
// Not populated if *send_all_clusters* is true.
Clusters []string `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
// If true, the client should send all clusters it knows about.
// Only clients that advertise the "envoy.lrs.supports_send_all_clusters" capability in their
// :ref:`client_features<envoy_api_field_config.core.v3.Node.client_features>` field will honor this field.
SendAllClusters bool `protobuf:"varint,4,opt,name=send_all_clusters,json=sendAllClusters,proto3" json:"send_all_clusters,omitempty"`
// The minimum interval of time to collect stats over. This is only a minimum for two reasons:
//
// 1. There may be some delay from when the timer fires until stats sampling occurs.
// 2. For clusters that were already feature in the previous *LoadStatsResponse*, any traffic
// that is observed in between the corresponding previous *LoadStatsRequest* and this
// *LoadStatsResponse* will also be accumulated and billed to the cluster. This avoids a period
// of inobservability that might otherwise exists between the messages. New clusters are not
// subject to this consideration.
LoadReportingInterval *duration.Duration `` /* 126-byte string literal not displayed */
// Set to *true* if the management server supports endpoint granularity
// report.
ReportEndpointGranularity bool `` /* 139-byte string literal not displayed */
// contains filtered or unexported fields
}
The management server sends envoy a LoadStatsResponse with all clusters it is interested in learning load stats about.
func (*LoadStatsResponse) Descriptor
deprecated
func (*LoadStatsResponse) Descriptor() ([]byte, []int)
Deprecated: Use LoadStatsResponse.ProtoReflect.Descriptor instead.
func (*LoadStatsResponse) GetClusters ¶
func (x *LoadStatsResponse) GetClusters() []string
func (*LoadStatsResponse) GetLoadReportingInterval ¶
func (x *LoadStatsResponse) GetLoadReportingInterval() *duration.Duration
func (*LoadStatsResponse) GetReportEndpointGranularity ¶
func (x *LoadStatsResponse) GetReportEndpointGranularity() bool
func (*LoadStatsResponse) GetSendAllClusters ¶ added in v0.9.6
func (x *LoadStatsResponse) GetSendAllClusters() bool
func (*LoadStatsResponse) ProtoMessage ¶
func (*LoadStatsResponse) ProtoMessage()
func (*LoadStatsResponse) ProtoReflect ¶ added in v0.9.6
func (x *LoadStatsResponse) ProtoReflect() protoreflect.Message
func (*LoadStatsResponse) Reset ¶
func (x *LoadStatsResponse) Reset()
func (*LoadStatsResponse) String ¶
func (x *LoadStatsResponse) String() string
func (*LoadStatsResponse) Validate ¶
func (m *LoadStatsResponse) Validate() error
Validate checks the field values on LoadStatsResponse with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.
type LoadStatsResponseValidationError ¶
type LoadStatsResponseValidationError struct {
// contains filtered or unexported fields
}
LoadStatsResponseValidationError is the validation error returned by LoadStatsResponse.Validate if the designated constraints aren't met.
func (LoadStatsResponseValidationError) Cause ¶
func (e LoadStatsResponseValidationError) Cause() error
Cause function returns cause value.
func (LoadStatsResponseValidationError) Error ¶
func (e LoadStatsResponseValidationError) Error() string
Error satisfies the builtin error interface
func (LoadStatsResponseValidationError) ErrorName ¶
func (e LoadStatsResponseValidationError) ErrorName() string
ErrorName returns error name.
func (LoadStatsResponseValidationError) Field ¶
func (e LoadStatsResponseValidationError) Field() string
Field function returns field value.
func (LoadStatsResponseValidationError) Key ¶
func (e LoadStatsResponseValidationError) Key() bool
Key function returns key value.
func (LoadStatsResponseValidationError) Reason ¶
func (e LoadStatsResponseValidationError) Reason() string
Reason function returns reason value.
type UnimplementedLoadReportingServiceServer ¶
type UnimplementedLoadReportingServiceServer struct {
}
UnimplementedLoadReportingServiceServer can be embedded to have forward compatible implementations.
func (*UnimplementedLoadReportingServiceServer) StreamLoadStats ¶
func (*UnimplementedLoadReportingServiceServer) StreamLoadStats(LoadReportingService_StreamLoadStatsServer) error