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)
- func (m *LoadStatsRequest) GetClusterStats() []*endpoint.ClusterStats
- func (m *LoadStatsRequest) GetNode() *core.Node
- func (m *LoadStatsRequest) Marshal() (dAtA []byte, err error)
- func (m *LoadStatsRequest) MarshalTo(dAtA []byte) (int, error)
- func (*LoadStatsRequest) ProtoMessage()
- func (m *LoadStatsRequest) Reset()
- func (m *LoadStatsRequest) Size() (n int)
- func (m *LoadStatsRequest) String() string
- func (m *LoadStatsRequest) Unmarshal(dAtA []byte) error
- func (m *LoadStatsRequest) Validate() error
- func (m *LoadStatsRequest) XXX_DiscardUnknown()
- func (m *LoadStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *LoadStatsRequest) XXX_Merge(src proto.Message)
- func (m *LoadStatsRequest) XXX_Size() int
- func (m *LoadStatsRequest) XXX_Unmarshal(b []byte) error
- type LoadStatsRequestValidationError
- type LoadStatsResponse
- func (*LoadStatsResponse) Descriptor() ([]byte, []int)
- func (m *LoadStatsResponse) GetClusters() []string
- func (m *LoadStatsResponse) GetLoadReportingInterval() *types.Duration
- func (m *LoadStatsResponse) GetReportEndpointGranularity() bool
- func (m *LoadStatsResponse) Marshal() (dAtA []byte, err error)
- func (m *LoadStatsResponse) MarshalTo(dAtA []byte) (int, error)
- func (*LoadStatsResponse) ProtoMessage()
- func (m *LoadStatsResponse) Reset()
- func (m *LoadStatsResponse) Size() (n int)
- func (m *LoadStatsResponse) String() string
- func (m *LoadStatsResponse) Unmarshal(dAtA []byte) error
- func (m *LoadStatsResponse) Validate() error
- func (m *LoadStatsResponse) XXX_DiscardUnknown()
- func (m *LoadStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *LoadStatsResponse) XXX_Merge(src proto.Message)
- func (m *LoadStatsResponse) XXX_Size() int
- func (m *LoadStatsResponse) XXX_Unmarshal(b []byte) error
- type LoadStatsResponseValidationError
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidLengthLrs = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowLrs = fmt.Errorf("proto: integer overflow") )
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) }
func NewLoadReportingServiceClient ¶
func NewLoadReportingServiceClient(cc *grpc.ClientConn) 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 }
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 *core.Node `protobuf:"bytes,1,opt,name=node" json:"node,omitempty"` // A list of load stats to report. ClusterStats []*endpoint.ClusterStats `protobuf:"bytes,2,rep,name=cluster_stats,json=clusterStats" json:"cluster_stats,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A load report Envoy sends to the management server. [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
func (*LoadStatsRequest) Descriptor ¶
func (*LoadStatsRequest) Descriptor() ([]byte, []int)
func (*LoadStatsRequest) GetClusterStats ¶
func (m *LoadStatsRequest) GetClusterStats() []*endpoint.ClusterStats
func (*LoadStatsRequest) GetNode ¶
func (m *LoadStatsRequest) GetNode() *core.Node
func (*LoadStatsRequest) Marshal ¶
func (m *LoadStatsRequest) Marshal() (dAtA []byte, err error)
func (*LoadStatsRequest) ProtoMessage ¶
func (*LoadStatsRequest) ProtoMessage()
func (*LoadStatsRequest) Reset ¶
func (m *LoadStatsRequest) Reset()
func (*LoadStatsRequest) Size ¶
func (m *LoadStatsRequest) Size() (n int)
func (*LoadStatsRequest) String ¶
func (m *LoadStatsRequest) String() string
func (*LoadStatsRequest) Unmarshal ¶
func (m *LoadStatsRequest) Unmarshal(dAtA []byte) error
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.
func (*LoadStatsRequest) XXX_DiscardUnknown ¶
func (m *LoadStatsRequest) XXX_DiscardUnknown()
func (*LoadStatsRequest) XXX_Marshal ¶
func (m *LoadStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*LoadStatsRequest) XXX_Merge ¶
func (dst *LoadStatsRequest) XXX_Merge(src proto.Message)
func (*LoadStatsRequest) XXX_Size ¶
func (m *LoadStatsRequest) XXX_Size() int
func (*LoadStatsRequest) XXX_Unmarshal ¶
func (m *LoadStatsRequest) XXX_Unmarshal(b []byte) error
type LoadStatsRequestValidationError ¶
LoadStatsRequestValidationError is the validation error returned by LoadStatsRequest.Validate if the designated constraints aren't met.
func (LoadStatsRequestValidationError) Error ¶
func (e LoadStatsRequestValidationError) Error() string
Error satisfies the builtin error interface
type LoadStatsResponse ¶
type LoadStatsResponse struct { // Clusters to report stats for. Clusters []string `protobuf:"bytes,1,rep,name=clusters" json:"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 *types.Duration `protobuf:"bytes,2,opt,name=load_reporting_interval,json=loadReportingInterval" json:"load_reporting_interval,omitempty"` // Set to *true* if the management server supports endpoint granularity // report. ReportEndpointGranularity bool `` /* 139-byte string literal not displayed */ XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
The management server sends envoy a LoadStatsResponse with all clusters it is interested in learning load stats about. [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
func (*LoadStatsResponse) Descriptor ¶
func (*LoadStatsResponse) Descriptor() ([]byte, []int)
func (*LoadStatsResponse) GetClusters ¶
func (m *LoadStatsResponse) GetClusters() []string
func (*LoadStatsResponse) GetLoadReportingInterval ¶
func (m *LoadStatsResponse) GetLoadReportingInterval() *types.Duration
func (*LoadStatsResponse) GetReportEndpointGranularity ¶
func (m *LoadStatsResponse) GetReportEndpointGranularity() bool
func (*LoadStatsResponse) Marshal ¶
func (m *LoadStatsResponse) Marshal() (dAtA []byte, err error)
func (*LoadStatsResponse) MarshalTo ¶
func (m *LoadStatsResponse) MarshalTo(dAtA []byte) (int, error)
func (*LoadStatsResponse) ProtoMessage ¶
func (*LoadStatsResponse) ProtoMessage()
func (*LoadStatsResponse) Reset ¶
func (m *LoadStatsResponse) Reset()
func (*LoadStatsResponse) Size ¶
func (m *LoadStatsResponse) Size() (n int)
func (*LoadStatsResponse) String ¶
func (m *LoadStatsResponse) String() string
func (*LoadStatsResponse) Unmarshal ¶
func (m *LoadStatsResponse) Unmarshal(dAtA []byte) error
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.
func (*LoadStatsResponse) XXX_DiscardUnknown ¶
func (m *LoadStatsResponse) XXX_DiscardUnknown()
func (*LoadStatsResponse) XXX_Marshal ¶
func (m *LoadStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*LoadStatsResponse) XXX_Merge ¶
func (dst *LoadStatsResponse) XXX_Merge(src proto.Message)
func (*LoadStatsResponse) XXX_Size ¶
func (m *LoadStatsResponse) XXX_Size() int
func (*LoadStatsResponse) XXX_Unmarshal ¶
func (m *LoadStatsResponse) XXX_Unmarshal(b []byte) error
type LoadStatsResponseValidationError ¶
LoadStatsResponseValidationError is the validation error returned by LoadStatsResponse.Validate if the designated constraints aren't met.
func (LoadStatsResponseValidationError) Error ¶
func (e LoadStatsResponseValidationError) Error() string
Error satisfies the builtin error interface