Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterLoadReportingServiceServer(s grpc.ServiceRegistrar, srv LoadReportingServiceServer)
- type LoadReportingServiceClient
- type LoadReportingServiceServer
- type LoadReportingService_StreamLoadStatsClient
- type LoadReportingService_StreamLoadStatsServer
- type UnimplementedLoadReportingServiceServer
- type UnsafeLoadReportingServiceServer
Constants ¶
const (
LoadReportingService_StreamLoadStats_FullMethodName = "/envoy.service.load_stats.v2.LoadReportingService/StreamLoadStats"
)
Variables ¶
var LoadReportingService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "envoy.service.load_stats.v2.LoadReportingService", HandlerType: (*LoadReportingServiceServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "StreamLoadStats", Handler: _LoadReportingService_StreamLoadStats_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "envoy/service/load_stats/v2/lrs.proto", }
LoadReportingService_ServiceDesc is the grpc.ServiceDesc for LoadReportingService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterLoadReportingServiceServer ¶
func RegisterLoadReportingServiceServer(s grpc.ServiceRegistrar, 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) (grpc.BidiStreamingClient[v2.LoadStatsRequest, v2.LoadStatsResponse], error)
}
LoadReportingServiceClient is the client API for LoadReportingService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#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(grpc.BidiStreamingServer[v2.LoadStatsRequest, v2.LoadStatsResponse]) error
}
LoadReportingServiceServer is the server API for LoadReportingService service. All implementations should embed UnimplementedLoadReportingServiceServer for forward compatibility.
type LoadReportingService_StreamLoadStatsClient ¶
type LoadReportingService_StreamLoadStatsClient = grpc.BidiStreamingClient[v2.LoadStatsRequest, v2.LoadStatsResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type LoadReportingService_StreamLoadStatsServer ¶
type LoadReportingService_StreamLoadStatsServer = grpc.BidiStreamingServer[v2.LoadStatsRequest, v2.LoadStatsResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type UnimplementedLoadReportingServiceServer ¶
type UnimplementedLoadReportingServiceServer struct{}
UnimplementedLoadReportingServiceServer should be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedLoadReportingServiceServer) StreamLoadStats ¶
func (UnimplementedLoadReportingServiceServer) StreamLoadStats(grpc.BidiStreamingServer[v2.LoadStatsRequest, v2.LoadStatsResponse]) error
type UnsafeLoadReportingServiceServer ¶
type UnsafeLoadReportingServiceServer interface {
// contains filtered or unexported methods
}
UnsafeLoadReportingServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to LoadReportingServiceServer will result in compilation errors.
Source Files
¶
- lrs_grpc.pb.go