v2

package
Version: v0.0.0-...-113c6ea Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2019 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package v2 is a generated protocol buffer package.

It is generated from these files:

envoy/service/load_stats/v2/lrs.proto

It has these top-level messages:

LoadStatsRequest
LoadStatsResponse

Index

Constants

This section is empty.

Variables

View Source
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 *envoy_api_v2_core.Node `protobuf:"bytes,1,opt,name=node" json:"node,omitempty"`
	// A list of load stats to report.
	ClusterStats []*envoy_api_v2_endpoint.ClusterStats `protobuf:"bytes,2,rep,name=cluster_stats,json=clusterStats" json:"cluster_stats,omitempty"`
}

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() []*envoy_api_v2_endpoint.ClusterStats

func (*LoadStatsRequest) GetNode

func (m *LoadStatsRequest) GetNode() *envoy_api_v2_core.Node

func (*LoadStatsRequest) Marshal

func (m *LoadStatsRequest) Marshal() (dAtA []byte, err error)

func (*LoadStatsRequest) MarshalTo

func (m *LoadStatsRequest) MarshalTo(dAtA []byte) (int, 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.

type LoadStatsRequestValidationError

type LoadStatsRequestValidationError struct {
	Field  string
	Reason string
	Cause  error
	Key    bool
}

LoadStatsRequestValidationError is the validation error returned by LoadStatsRequest.Validate if the designated constraints aren't met.

func (LoadStatsRequestValidationError) Error

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 *google_protobuf3.Duration `protobuf:"bytes,2,opt,name=load_reporting_interval,json=loadReportingInterval" json:"load_reporting_interval,omitempty"`
}

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() *google_protobuf3.Duration

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.

type LoadStatsResponseValidationError

type LoadStatsResponseValidationError struct {
	Field  string
	Reason string
	Cause  error
	Key    bool
}

LoadStatsResponseValidationError is the validation error returned by LoadStatsResponse.Validate if the designated constraints aren't met.

func (LoadStatsResponseValidationError) Error

Error satisfies the builtin error interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL