github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/go-control-plane/envoy/service/load_stats/v3/lrs.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.25.0 4 // protoc v3.16.0 5 // source: envoy/service/load_stats/v3/lrs.proto 6 7 package envoy_service_load_stats_v3 8 9 import ( 10 context "context" 11 _ "github.com/cncf/xds/go/udpa/annotations" 12 v3 "github.com/hxx258456/ccgo/go-control-plane/envoy/config/core/v3" 13 v31 "github.com/hxx258456/ccgo/go-control-plane/envoy/config/endpoint/v3" 14 proto "github.com/golang/protobuf/proto" 15 duration "github.com/golang/protobuf/ptypes/duration" 16 grpc "github.com/hxx258456/ccgo/grpc" 17 codes "github.com/hxx258456/ccgo/grpc/codes" 18 status "github.com/hxx258456/ccgo/grpc/status" 19 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 20 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 21 reflect "reflect" 22 sync "sync" 23 ) 24 25 const ( 26 // Verify that this generated code is sufficiently up-to-date. 27 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 28 // Verify that runtime/protoimpl is sufficiently up-to-date. 29 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 30 ) 31 32 // This is a compile-time assertion that a sufficiently up-to-date version 33 // of the legacy proto package is being used. 34 const _ = proto.ProtoPackageIsVersion4 35 36 // A load report Envoy sends to the management server. 37 type LoadStatsRequest struct { 38 state protoimpl.MessageState 39 sizeCache protoimpl.SizeCache 40 unknownFields protoimpl.UnknownFields 41 42 // Node identifier for Envoy instance. 43 Node *v3.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` 44 // A list of load stats to report. 45 ClusterStats []*v31.ClusterStats `protobuf:"bytes,2,rep,name=cluster_stats,json=clusterStats,proto3" json:"cluster_stats,omitempty"` 46 } 47 48 func (x *LoadStatsRequest) Reset() { 49 *x = LoadStatsRequest{} 50 if protoimpl.UnsafeEnabled { 51 mi := &file_envoy_service_load_stats_v3_lrs_proto_msgTypes[0] 52 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 53 ms.StoreMessageInfo(mi) 54 } 55 } 56 57 func (x *LoadStatsRequest) String() string { 58 return protoimpl.X.MessageStringOf(x) 59 } 60 61 func (*LoadStatsRequest) ProtoMessage() {} 62 63 func (x *LoadStatsRequest) ProtoReflect() protoreflect.Message { 64 mi := &file_envoy_service_load_stats_v3_lrs_proto_msgTypes[0] 65 if protoimpl.UnsafeEnabled && x != nil { 66 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 67 if ms.LoadMessageInfo() == nil { 68 ms.StoreMessageInfo(mi) 69 } 70 return ms 71 } 72 return mi.MessageOf(x) 73 } 74 75 // Deprecated: Use LoadStatsRequest.ProtoReflect.Descriptor instead. 76 func (*LoadStatsRequest) Descriptor() ([]byte, []int) { 77 return file_envoy_service_load_stats_v3_lrs_proto_rawDescGZIP(), []int{0} 78 } 79 80 func (x *LoadStatsRequest) GetNode() *v3.Node { 81 if x != nil { 82 return x.Node 83 } 84 return nil 85 } 86 87 func (x *LoadStatsRequest) GetClusterStats() []*v31.ClusterStats { 88 if x != nil { 89 return x.ClusterStats 90 } 91 return nil 92 } 93 94 // The management server sends envoy a LoadStatsResponse with all clusters it 95 // is interested in learning load stats about. 96 type LoadStatsResponse struct { 97 state protoimpl.MessageState 98 sizeCache protoimpl.SizeCache 99 unknownFields protoimpl.UnknownFields 100 101 // Clusters to report stats for. 102 // Not populated if *send_all_clusters* is true. 103 Clusters []string `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` 104 // If true, the client should send all clusters it knows about. 105 // Only clients that advertise the "envoy.lrs.supports_send_all_clusters" capability in their 106 // :ref:`client_features<envoy_v3_api_field_config.core.v3.Node.client_features>` field will honor this field. 107 SendAllClusters bool `protobuf:"varint,4,opt,name=send_all_clusters,json=sendAllClusters,proto3" json:"send_all_clusters,omitempty"` 108 // The minimum interval of time to collect stats over. This is only a minimum for two reasons: 109 // 110 // 1. There may be some delay from when the timer fires until stats sampling occurs. 111 // 2. For clusters that were already feature in the previous *LoadStatsResponse*, any traffic 112 // that is observed in between the corresponding previous *LoadStatsRequest* and this 113 // *LoadStatsResponse* will also be accumulated and billed to the cluster. This avoids a period 114 // of inobservability that might otherwise exists between the messages. New clusters are not 115 // subject to this consideration. 116 LoadReportingInterval *duration.Duration `protobuf:"bytes,2,opt,name=load_reporting_interval,json=loadReportingInterval,proto3" json:"load_reporting_interval,omitempty"` 117 // Set to *true* if the management server supports endpoint granularity 118 // report. 119 ReportEndpointGranularity bool `protobuf:"varint,3,opt,name=report_endpoint_granularity,json=reportEndpointGranularity,proto3" json:"report_endpoint_granularity,omitempty"` 120 } 121 122 func (x *LoadStatsResponse) Reset() { 123 *x = LoadStatsResponse{} 124 if protoimpl.UnsafeEnabled { 125 mi := &file_envoy_service_load_stats_v3_lrs_proto_msgTypes[1] 126 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 127 ms.StoreMessageInfo(mi) 128 } 129 } 130 131 func (x *LoadStatsResponse) String() string { 132 return protoimpl.X.MessageStringOf(x) 133 } 134 135 func (*LoadStatsResponse) ProtoMessage() {} 136 137 func (x *LoadStatsResponse) ProtoReflect() protoreflect.Message { 138 mi := &file_envoy_service_load_stats_v3_lrs_proto_msgTypes[1] 139 if protoimpl.UnsafeEnabled && x != nil { 140 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 141 if ms.LoadMessageInfo() == nil { 142 ms.StoreMessageInfo(mi) 143 } 144 return ms 145 } 146 return mi.MessageOf(x) 147 } 148 149 // Deprecated: Use LoadStatsResponse.ProtoReflect.Descriptor instead. 150 func (*LoadStatsResponse) Descriptor() ([]byte, []int) { 151 return file_envoy_service_load_stats_v3_lrs_proto_rawDescGZIP(), []int{1} 152 } 153 154 func (x *LoadStatsResponse) GetClusters() []string { 155 if x != nil { 156 return x.Clusters 157 } 158 return nil 159 } 160 161 func (x *LoadStatsResponse) GetSendAllClusters() bool { 162 if x != nil { 163 return x.SendAllClusters 164 } 165 return false 166 } 167 168 func (x *LoadStatsResponse) GetLoadReportingInterval() *duration.Duration { 169 if x != nil { 170 return x.LoadReportingInterval 171 } 172 return nil 173 } 174 175 func (x *LoadStatsResponse) GetReportEndpointGranularity() bool { 176 if x != nil { 177 return x.ReportEndpointGranularity 178 } 179 return false 180 } 181 182 var File_envoy_service_load_stats_v3_lrs_proto protoreflect.FileDescriptor 183 184 var file_envoy_service_load_stats_v3_lrs_proto_rawDesc = []byte{ 185 0x0a, 0x25, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 186 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x72, 187 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x73, 188 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 189 0x73, 0x2e, 0x76, 0x33, 0x1a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 190 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 191 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 192 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0x2f, 193 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 194 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 195 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 196 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 197 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 198 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 199 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 200 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x01, 0x0a, 0x10, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 201 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 202 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 203 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 204 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x4b, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 205 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 206 0x26, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x65, 207 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 208 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 209 0x53, 0x74, 0x61, 0x74, 0x73, 0x3a, 0x33, 0x9a, 0xc5, 0x88, 0x1e, 0x2e, 0x0a, 0x2c, 0x65, 0x6e, 210 0x76, 0x6f, 0x79, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 211 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 212 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa4, 0x02, 0x0a, 0x11, 0x4c, 213 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 214 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 215 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 216 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 217 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 218 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x17, 0x6c, 0x6f, 0x61, 0x64, 219 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 220 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 221 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 222 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 223 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x3e, 0x0a, 0x1b, 0x72, 224 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x67, 225 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 226 0x52, 0x19, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 227 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x34, 0x9a, 0xc5, 0x88, 228 0x1e, 0x2f, 0x0a, 0x2d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 229 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x32, 0x2e, 230 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 231 0x65, 0x32, 0x8e, 0x01, 0x0a, 0x14, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 232 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0f, 0x53, 0x74, 233 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 234 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 235 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 236 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 237 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 238 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x53, 239 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 240 0x30, 0x01, 0x42, 0x42, 0x0a, 0x29, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 241 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 242 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x76, 0x33, 0x42, 243 0x08, 0x4c, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x88, 0x01, 0x01, 0xba, 0x80, 244 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 245 } 246 247 var ( 248 file_envoy_service_load_stats_v3_lrs_proto_rawDescOnce sync.Once 249 file_envoy_service_load_stats_v3_lrs_proto_rawDescData = file_envoy_service_load_stats_v3_lrs_proto_rawDesc 250 ) 251 252 func file_envoy_service_load_stats_v3_lrs_proto_rawDescGZIP() []byte { 253 file_envoy_service_load_stats_v3_lrs_proto_rawDescOnce.Do(func() { 254 file_envoy_service_load_stats_v3_lrs_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_service_load_stats_v3_lrs_proto_rawDescData) 255 }) 256 return file_envoy_service_load_stats_v3_lrs_proto_rawDescData 257 } 258 259 var file_envoy_service_load_stats_v3_lrs_proto_msgTypes = make([]protoimpl.MessageInfo, 2) 260 var file_envoy_service_load_stats_v3_lrs_proto_goTypes = []interface{}{ 261 (*LoadStatsRequest)(nil), // 0: envoy.service.load_stats.v3.LoadStatsRequest 262 (*LoadStatsResponse)(nil), // 1: envoy.service.load_stats.v3.LoadStatsResponse 263 (*v3.Node)(nil), // 2: envoy.config.core.v3.Node 264 (*v31.ClusterStats)(nil), // 3: envoy.config.endpoint.v3.ClusterStats 265 (*duration.Duration)(nil), // 4: google.protobuf.Duration 266 } 267 var file_envoy_service_load_stats_v3_lrs_proto_depIdxs = []int32{ 268 2, // 0: envoy.service.load_stats.v3.LoadStatsRequest.node:type_name -> envoy.config.core.v3.Node 269 3, // 1: envoy.service.load_stats.v3.LoadStatsRequest.cluster_stats:type_name -> envoy.config.endpoint.v3.ClusterStats 270 4, // 2: envoy.service.load_stats.v3.LoadStatsResponse.load_reporting_interval:type_name -> google.protobuf.Duration 271 0, // 3: envoy.service.load_stats.v3.LoadReportingService.StreamLoadStats:input_type -> envoy.service.load_stats.v3.LoadStatsRequest 272 1, // 4: envoy.service.load_stats.v3.LoadReportingService.StreamLoadStats:output_type -> envoy.service.load_stats.v3.LoadStatsResponse 273 4, // [4:5] is the sub-list for method output_type 274 3, // [3:4] is the sub-list for method input_type 275 3, // [3:3] is the sub-list for extension type_name 276 3, // [3:3] is the sub-list for extension extendee 277 0, // [0:3] is the sub-list for field type_name 278 } 279 280 func init() { file_envoy_service_load_stats_v3_lrs_proto_init() } 281 func file_envoy_service_load_stats_v3_lrs_proto_init() { 282 if File_envoy_service_load_stats_v3_lrs_proto != nil { 283 return 284 } 285 if !protoimpl.UnsafeEnabled { 286 file_envoy_service_load_stats_v3_lrs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 287 switch v := v.(*LoadStatsRequest); i { 288 case 0: 289 return &v.state 290 case 1: 291 return &v.sizeCache 292 case 2: 293 return &v.unknownFields 294 default: 295 return nil 296 } 297 } 298 file_envoy_service_load_stats_v3_lrs_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 299 switch v := v.(*LoadStatsResponse); i { 300 case 0: 301 return &v.state 302 case 1: 303 return &v.sizeCache 304 case 2: 305 return &v.unknownFields 306 default: 307 return nil 308 } 309 } 310 } 311 type x struct{} 312 out := protoimpl.TypeBuilder{ 313 File: protoimpl.DescBuilder{ 314 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 315 RawDescriptor: file_envoy_service_load_stats_v3_lrs_proto_rawDesc, 316 NumEnums: 0, 317 NumMessages: 2, 318 NumExtensions: 0, 319 NumServices: 1, 320 }, 321 GoTypes: file_envoy_service_load_stats_v3_lrs_proto_goTypes, 322 DependencyIndexes: file_envoy_service_load_stats_v3_lrs_proto_depIdxs, 323 MessageInfos: file_envoy_service_load_stats_v3_lrs_proto_msgTypes, 324 }.Build() 325 File_envoy_service_load_stats_v3_lrs_proto = out.File 326 file_envoy_service_load_stats_v3_lrs_proto_rawDesc = nil 327 file_envoy_service_load_stats_v3_lrs_proto_goTypes = nil 328 file_envoy_service_load_stats_v3_lrs_proto_depIdxs = nil 329 } 330 331 // Reference imports to suppress errors if they are not otherwise used. 332 var _ context.Context 333 var _ grpc.ClientConnInterface 334 335 // This is a compile-time assertion to ensure that this generated file 336 // is compatible with the grpc package it is being compiled against. 337 const _ = grpc.SupportPackageIsVersion6 338 339 // LoadReportingServiceClient is the client API for LoadReportingService service. 340 // 341 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 342 type LoadReportingServiceClient interface { 343 // Advanced API to allow for multi-dimensional load balancing by remote 344 // server. For receiving LB assignments, the steps are: 345 // 1, The management server is configured with per cluster/zone/load metric 346 // capacity configuration. The capacity configuration definition is 347 // outside of the scope of this document. 348 // 2. Envoy issues a standard {Stream,Fetch}Endpoints request for the clusters 349 // to balance. 350 // 351 // Independently, Envoy will initiate a StreamLoadStats bidi stream with a 352 // management server: 353 // 1. Once a connection establishes, the management server publishes a 354 // LoadStatsResponse for all clusters it is interested in learning load 355 // stats about. 356 // 2. For each cluster, Envoy load balances incoming traffic to upstream hosts 357 // based on per-zone weights and/or per-instance weights (if specified) 358 // based on intra-zone LbPolicy. This information comes from the above 359 // {Stream,Fetch}Endpoints. 360 // 3. When upstream hosts reply, they optionally add header <define header 361 // name> with ASCII representation of EndpointLoadMetricStats. 362 // 4. Envoy aggregates load reports over the period of time given to it in 363 // LoadStatsResponse.load_reporting_interval. This includes aggregation 364 // stats Envoy maintains by itself (total_requests, rpc_errors etc.) as 365 // well as load metrics from upstream hosts. 366 // 5. When the timer of load_reporting_interval expires, Envoy sends new 367 // LoadStatsRequest filled with load reports for each cluster. 368 // 6. The management server uses the load reports from all reported Envoys 369 // from around the world, computes global assignment and prepares traffic 370 // assignment destined for each zone Envoys are located in. Goto 2. 371 StreamLoadStats(ctx context.Context, opts ...grpc.CallOption) (LoadReportingService_StreamLoadStatsClient, error) 372 } 373 374 type loadReportingServiceClient struct { 375 cc grpc.ClientConnInterface 376 } 377 378 func NewLoadReportingServiceClient(cc grpc.ClientConnInterface) LoadReportingServiceClient { 379 return &loadReportingServiceClient{cc} 380 } 381 382 func (c *loadReportingServiceClient) StreamLoadStats(ctx context.Context, opts ...grpc.CallOption) (LoadReportingService_StreamLoadStatsClient, error) { 383 stream, err := c.cc.NewStream(ctx, &_LoadReportingService_serviceDesc.Streams[0], "/envoy.service.load_stats.v3.LoadReportingService/StreamLoadStats", opts...) 384 if err != nil { 385 return nil, err 386 } 387 x := &loadReportingServiceStreamLoadStatsClient{stream} 388 return x, nil 389 } 390 391 type LoadReportingService_StreamLoadStatsClient interface { 392 Send(*LoadStatsRequest) error 393 Recv() (*LoadStatsResponse, error) 394 grpc.ClientStream 395 } 396 397 type loadReportingServiceStreamLoadStatsClient struct { 398 grpc.ClientStream 399 } 400 401 func (x *loadReportingServiceStreamLoadStatsClient) Send(m *LoadStatsRequest) error { 402 return x.ClientStream.SendMsg(m) 403 } 404 405 func (x *loadReportingServiceStreamLoadStatsClient) Recv() (*LoadStatsResponse, error) { 406 m := new(LoadStatsResponse) 407 if err := x.ClientStream.RecvMsg(m); err != nil { 408 return nil, err 409 } 410 return m, nil 411 } 412 413 // LoadReportingServiceServer is the server API for LoadReportingService service. 414 type LoadReportingServiceServer interface { 415 // Advanced API to allow for multi-dimensional load balancing by remote 416 // server. For receiving LB assignments, the steps are: 417 // 1, The management server is configured with per cluster/zone/load metric 418 // capacity configuration. The capacity configuration definition is 419 // outside of the scope of this document. 420 // 2. Envoy issues a standard {Stream,Fetch}Endpoints request for the clusters 421 // to balance. 422 // 423 // Independently, Envoy will initiate a StreamLoadStats bidi stream with a 424 // management server: 425 // 1. Once a connection establishes, the management server publishes a 426 // LoadStatsResponse for all clusters it is interested in learning load 427 // stats about. 428 // 2. For each cluster, Envoy load balances incoming traffic to upstream hosts 429 // based on per-zone weights and/or per-instance weights (if specified) 430 // based on intra-zone LbPolicy. This information comes from the above 431 // {Stream,Fetch}Endpoints. 432 // 3. When upstream hosts reply, they optionally add header <define header 433 // name> with ASCII representation of EndpointLoadMetricStats. 434 // 4. Envoy aggregates load reports over the period of time given to it in 435 // LoadStatsResponse.load_reporting_interval. This includes aggregation 436 // stats Envoy maintains by itself (total_requests, rpc_errors etc.) as 437 // well as load metrics from upstream hosts. 438 // 5. When the timer of load_reporting_interval expires, Envoy sends new 439 // LoadStatsRequest filled with load reports for each cluster. 440 // 6. The management server uses the load reports from all reported Envoys 441 // from around the world, computes global assignment and prepares traffic 442 // assignment destined for each zone Envoys are located in. Goto 2. 443 StreamLoadStats(LoadReportingService_StreamLoadStatsServer) error 444 } 445 446 // UnimplementedLoadReportingServiceServer can be embedded to have forward compatible implementations. 447 type UnimplementedLoadReportingServiceServer struct { 448 } 449 450 func (*UnimplementedLoadReportingServiceServer) StreamLoadStats(LoadReportingService_StreamLoadStatsServer) error { 451 return status.Errorf(codes.Unimplemented, "method StreamLoadStats not implemented") 452 } 453 454 func RegisterLoadReportingServiceServer(s *grpc.Server, srv LoadReportingServiceServer) { 455 s.RegisterService(&_LoadReportingService_serviceDesc, srv) 456 } 457 458 func _LoadReportingService_StreamLoadStats_Handler(srv interface{}, stream grpc.ServerStream) error { 459 return srv.(LoadReportingServiceServer).StreamLoadStats(&loadReportingServiceStreamLoadStatsServer{stream}) 460 } 461 462 type LoadReportingService_StreamLoadStatsServer interface { 463 Send(*LoadStatsResponse) error 464 Recv() (*LoadStatsRequest, error) 465 grpc.ServerStream 466 } 467 468 type loadReportingServiceStreamLoadStatsServer struct { 469 grpc.ServerStream 470 } 471 472 func (x *loadReportingServiceStreamLoadStatsServer) Send(m *LoadStatsResponse) error { 473 return x.ServerStream.SendMsg(m) 474 } 475 476 func (x *loadReportingServiceStreamLoadStatsServer) Recv() (*LoadStatsRequest, error) { 477 m := new(LoadStatsRequest) 478 if err := x.ServerStream.RecvMsg(m); err != nil { 479 return nil, err 480 } 481 return m, nil 482 } 483 484 var _LoadReportingService_serviceDesc = grpc.ServiceDesc{ 485 ServiceName: "envoy.service.load_stats.v3.LoadReportingService", 486 HandlerType: (*LoadReportingServiceServer)(nil), 487 Methods: []grpc.MethodDesc{}, 488 Streams: []grpc.StreamDesc{ 489 { 490 StreamName: "StreamLoadStats", 491 Handler: _LoadReportingService_StreamLoadStats_Handler, 492 ServerStreams: true, 493 ClientStreams: true, 494 }, 495 }, 496 Metadata: "envoy/service/load_stats/v3/lrs.proto", 497 }