123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- syntax = "proto3";
- package envoy.api.v2.endpoint;
- import "envoy/api/v2/core/address.proto";
- import "envoy/api/v2/core/base.proto";
- import "google/protobuf/duration.proto";
- import "google/protobuf/struct.proto";
- import "udpa/annotations/migrate.proto";
- import "udpa/annotations/status.proto";
- import "validate/validate.proto";
- option java_package = "io.envoyproxy.envoy.api.v2.endpoint";
- option java_outer_classname = "LoadReportProto";
- option java_multiple_files = true;
- option go_package = "github.com/envoyproxy/go-control-plane/envoy/api/v2/endpoint";
- option (udpa.annotations.file_migrate).move_to_package = "envoy.config.endpoint.v3";
- option (udpa.annotations.file_status).package_version_status = FROZEN;
- // These are stats Envoy reports to GLB every so often. Report frequency is
- // defined by
- // :ref:`LoadStatsResponse.load_reporting_interval<envoy_api_field_service.load_stats.v2.LoadStatsResponse.load_reporting_interval>`.
- // Stats per upstream region/zone and optionally per subzone.
- // [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
- // [#next-free-field: 9]
- message UpstreamLocalityStats {
- // Name of zone, region and optionally endpoint group these metrics were
- // collected from. Zone and region names could be empty if unknown.
- core.Locality locality = 1;
- // The total number of requests successfully completed by the endpoints in the
- // locality.
- uint64 total_successful_requests = 2;
- // The total number of unfinished requests
- uint64 total_requests_in_progress = 3;
- // The total number of requests that failed due to errors at the endpoint,
- // aggregated over all endpoints in the locality.
- uint64 total_error_requests = 4;
- // The total number of requests that were issued by this Envoy since
- // the last report. This information is aggregated over all the
- // upstream endpoints in the locality.
- uint64 total_issued_requests = 8;
- // Stats for multi-dimensional load balancing.
- repeated EndpointLoadMetricStats load_metric_stats = 5;
- // Endpoint granularity stats information for this locality. This information
- // is populated if the Server requests it by setting
- // :ref:`LoadStatsResponse.report_endpoint_granularity<envoy_api_field_service.load_stats.v2.LoadStatsResponse.report_endpoint_granularity>`.
- repeated UpstreamEndpointStats upstream_endpoint_stats = 7;
- // [#not-implemented-hide:] The priority of the endpoint group these metrics
- // were collected from.
- uint32 priority = 6;
- }
- // [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
- // [#next-free-field: 8]
- message UpstreamEndpointStats {
- // Upstream host address.
- core.Address address = 1;
- // Opaque and implementation dependent metadata of the
- // endpoint. Envoy will pass this directly to the management server.
- google.protobuf.Struct metadata = 6;
- // The total number of requests successfully completed by the endpoints in the
- // locality. These include non-5xx responses for HTTP, where errors
- // originate at the client and the endpoint responded successfully. For gRPC,
- // the grpc-status values are those not covered by total_error_requests below.
- uint64 total_successful_requests = 2;
- // The total number of unfinished requests for this endpoint.
- uint64 total_requests_in_progress = 3;
- // The total number of requests that failed due to errors at the endpoint.
- // For HTTP these are responses with 5xx status codes and for gRPC the
- // grpc-status values:
- //
- // - DeadlineExceeded
- // - Unimplemented
- // - Internal
- // - Unavailable
- // - Unknown
- // - DataLoss
- uint64 total_error_requests = 4;
- // The total number of requests that were issued to this endpoint
- // since the last report. A single TCP connection, HTTP or gRPC
- // request or stream is counted as one request.
- uint64 total_issued_requests = 7;
- // Stats for multi-dimensional load balancing.
- repeated EndpointLoadMetricStats load_metric_stats = 5;
- }
- // [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
- message EndpointLoadMetricStats {
- // Name of the metric; may be empty.
- string metric_name = 1;
- // Number of calls that finished and included this metric.
- uint64 num_requests_finished_with_metric = 2;
- // Sum of metric values across all calls that finished with this metric for
- // load_reporting_interval.
- double total_metric_value = 3;
- }
- // Per cluster load stats. Envoy reports these stats a management server in a
- // :ref:`LoadStatsRequest<envoy_api_msg_service.load_stats.v2.LoadStatsRequest>`
- // [#not-implemented-hide:] Not configuration. TBD how to doc proto APIs.
- // Next ID: 7
- // [#next-free-field: 7]
- message ClusterStats {
- message DroppedRequests {
- // Identifier for the policy specifying the drop.
- string category = 1 [(validate.rules).string = {min_bytes: 1}];
- // Total number of deliberately dropped requests for the category.
- uint64 dropped_count = 2;
- }
- // The name of the cluster.
- string cluster_name = 1 [(validate.rules).string = {min_bytes: 1}];
- // The eds_cluster_config service_name of the cluster.
- // It's possible that two clusters send the same service_name to EDS,
- // in that case, the management server is supposed to do aggregation on the load reports.
- string cluster_service_name = 6;
- // Need at least one.
- repeated UpstreamLocalityStats upstream_locality_stats = 2
- [(validate.rules).repeated = {min_items: 1}];
- // Cluster-level stats such as total_successful_requests may be computed by
- // summing upstream_locality_stats. In addition, below there are additional
- // cluster-wide stats.
- //
- // The total number of dropped requests. This covers requests
- // deliberately dropped by the drop_overload policy and circuit breaking.
- uint64 total_dropped_requests = 3;
- // Information about deliberately dropped requests for each category specified
- // in the DropOverload policy.
- repeated DroppedRequests dropped_requests = 5;
- // Period over which the actual load report occurred. This will be guaranteed to include every
- // request reported. Due to system load and delays between the *LoadStatsRequest* sent from Envoy
- // and the *LoadStatsResponse* message sent from the management server, this may be longer than
- // the requested load reporting interval in the *LoadStatsResponse*.
- google.protobuf.Duration load_report_interval = 4;
- }
|