...

Text file src/github.com/datawire/ambassador/v2/api/envoy/config/endpoint/v3/load_report.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/config/endpoint/v3

     1syntax = "proto3";
     2
     3package envoy.config.endpoint.v3;
     4
     5import "envoy/config/core/v3/address.proto";
     6import "envoy/config/core/v3/base.proto";
     7
     8import "google/protobuf/duration.proto";
     9import "google/protobuf/struct.proto";
    10
    11import "udpa/annotations/status.proto";
    12import "udpa/annotations/versioning.proto";
    13import "validate/validate.proto";
    14
    15option java_package = "io.envoyproxy.envoy.config.endpoint.v3";
    16option java_outer_classname = "LoadReportProto";
    17option java_multiple_files = true;
    18option (udpa.annotations.file_status).package_version_status = ACTIVE;
    19
    20// [#protodoc-title: Load Report]
    21
    22// These are stats Envoy reports to the management server at a frequency defined by
    23// :ref:`LoadStatsResponse.load_reporting_interval<envoy_api_field_service.load_stats.v3.LoadStatsResponse.load_reporting_interval>`.
    24// Stats per upstream region/zone and optionally per subzone.
    25// [#next-free-field: 9]
    26message UpstreamLocalityStats {
    27  option (udpa.annotations.versioning).previous_message_type =
    28      "envoy.api.v2.endpoint.UpstreamLocalityStats";
    29
    30  // Name of zone, region and optionally endpoint group these metrics were
    31  // collected from. Zone and region names could be empty if unknown.
    32  core.v3.Locality locality = 1;
    33
    34  // The total number of requests successfully completed by the endpoints in the
    35  // locality.
    36  uint64 total_successful_requests = 2;
    37
    38  // The total number of unfinished requests
    39  uint64 total_requests_in_progress = 3;
    40
    41  // The total number of requests that failed due to errors at the endpoint,
    42  // aggregated over all endpoints in the locality.
    43  uint64 total_error_requests = 4;
    44
    45  // The total number of requests that were issued by this Envoy since
    46  // the last report. This information is aggregated over all the
    47  // upstream endpoints in the locality.
    48  uint64 total_issued_requests = 8;
    49
    50  // Stats for multi-dimensional load balancing.
    51  repeated EndpointLoadMetricStats load_metric_stats = 5;
    52
    53  // Endpoint granularity stats information for this locality. This information
    54  // is populated if the Server requests it by setting
    55  // :ref:`LoadStatsResponse.report_endpoint_granularity<envoy_api_field_service.load_stats.v3.LoadStatsResponse.report_endpoint_granularity>`.
    56  repeated UpstreamEndpointStats upstream_endpoint_stats = 7;
    57
    58  // [#not-implemented-hide:] The priority of the endpoint group these metrics
    59  // were collected from.
    60  uint32 priority = 6;
    61}
    62
    63// [#next-free-field: 8]
    64message UpstreamEndpointStats {
    65  option (udpa.annotations.versioning).previous_message_type =
    66      "envoy.api.v2.endpoint.UpstreamEndpointStats";
    67
    68  // Upstream host address.
    69  core.v3.Address address = 1;
    70
    71  // Opaque and implementation dependent metadata of the
    72  // endpoint. Envoy will pass this directly to the management server.
    73  google.protobuf.Struct metadata = 6;
    74
    75  // The total number of requests successfully completed by the endpoints in the
    76  // locality. These include non-5xx responses for HTTP, where errors
    77  // originate at the client and the endpoint responded successfully. For gRPC,
    78  // the grpc-status values are those not covered by total_error_requests below.
    79  uint64 total_successful_requests = 2;
    80
    81  // The total number of unfinished requests for this endpoint.
    82  uint64 total_requests_in_progress = 3;
    83
    84  // The total number of requests that failed due to errors at the endpoint.
    85  // For HTTP these are responses with 5xx status codes and for gRPC the
    86  // grpc-status values:
    87  //
    88  //   - DeadlineExceeded
    89  //   - Unimplemented
    90  //   - Internal
    91  //   - Unavailable
    92  //   - Unknown
    93  //   - DataLoss
    94  uint64 total_error_requests = 4;
    95
    96  // The total number of requests that were issued to this endpoint
    97  // since the last report. A single TCP connection, HTTP or gRPC
    98  // request or stream is counted as one request.
    99  uint64 total_issued_requests = 7;
   100
   101  // Stats for multi-dimensional load balancing.
   102  repeated EndpointLoadMetricStats load_metric_stats = 5;
   103}
   104
   105message EndpointLoadMetricStats {
   106  option (udpa.annotations.versioning).previous_message_type =
   107      "envoy.api.v2.endpoint.EndpointLoadMetricStats";
   108
   109  // Name of the metric; may be empty.
   110  string metric_name = 1;
   111
   112  // Number of calls that finished and included this metric.
   113  uint64 num_requests_finished_with_metric = 2;
   114
   115  // Sum of metric values across all calls that finished with this metric for
   116  // load_reporting_interval.
   117  double total_metric_value = 3;
   118}
   119
   120// Per cluster load stats. Envoy reports these stats a management server in a
   121// :ref:`LoadStatsRequest<envoy_api_msg_service.load_stats.v3.LoadStatsRequest>`
   122// Next ID: 7
   123// [#next-free-field: 7]
   124message ClusterStats {
   125  option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.endpoint.ClusterStats";
   126
   127  message DroppedRequests {
   128    option (udpa.annotations.versioning).previous_message_type =
   129        "envoy.api.v2.endpoint.ClusterStats.DroppedRequests";
   130
   131    // Identifier for the policy specifying the drop.
   132    string category = 1 [(validate.rules).string = {min_len: 1}];
   133
   134    // Total number of deliberately dropped requests for the category.
   135    uint64 dropped_count = 2;
   136  }
   137
   138  // The name of the cluster.
   139  string cluster_name = 1 [(validate.rules).string = {min_len: 1}];
   140
   141  // The eds_cluster_config service_name of the cluster.
   142  // It's possible that two clusters send the same service_name to EDS,
   143  // in that case, the management server is supposed to do aggregation on the load reports.
   144  string cluster_service_name = 6;
   145
   146  // Need at least one.
   147  repeated UpstreamLocalityStats upstream_locality_stats = 2
   148      [(validate.rules).repeated = {min_items: 1}];
   149
   150  // Cluster-level stats such as total_successful_requests may be computed by
   151  // summing upstream_locality_stats. In addition, below there are additional
   152  // cluster-wide stats.
   153  //
   154  // The total number of dropped requests. This covers requests
   155  // deliberately dropped by the drop_overload policy and circuit breaking.
   156  uint64 total_dropped_requests = 3;
   157
   158  // Information about deliberately dropped requests for each category specified
   159  // in the DropOverload policy.
   160  repeated DroppedRequests dropped_requests = 5;
   161
   162  // Period over which the actual load report occurred. This will be guaranteed to include every
   163  // request reported. Due to system load and delays between the *LoadStatsRequest* sent from Envoy
   164  // and the *LoadStatsResponse* message sent from the management server, this may be longer than
   165  // the requested load reporting interval in the *LoadStatsResponse*.
   166  google.protobuf.Duration load_report_interval = 4;
   167}

View as plain text