Load Report

config.endpoint.v3.UpstreamLocalityStats

[config.endpoint.v3.UpstreamLocalityStats proto]

These are stats Envoy reports to the management server at a frequency defined by LoadStatsResponse.load_reporting_interval. Stats per upstream region/zone and optionally per subzone.

{
  "locality": "{...}",
  "total_successful_requests": "...",
  "total_requests_in_progress": "...",
  "total_error_requests": "...",
  "total_issued_requests": "...",
  "load_metric_stats": [],
  "upstream_endpoint_stats": []
}
locality

(config.core.v3.Locality) Name of zone, region and optionally endpoint group these metrics were collected from. Zone and region names could be empty if unknown.

total_successful_requests

(uint64) The total number of requests successfully completed by the endpoints in the locality.

total_requests_in_progress

(uint64) The total number of unfinished requests

total_error_requests

(uint64) The total number of requests that failed due to errors at the endpoint, aggregated over all endpoints in the locality.

total_issued_requests

(uint64) 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.

load_metric_stats

(repeated config.endpoint.v3.EndpointLoadMetricStats) Stats for multi-dimensional load balancing.

upstream_endpoint_stats

(repeated config.endpoint.v3.UpstreamEndpointStats) Endpoint granularity stats information for this locality. This information is populated if the Server requests it by setting LoadStatsResponse.report_endpoint_granularity.

config.endpoint.v3.UpstreamEndpointStats

[config.endpoint.v3.UpstreamEndpointStats proto]

{
  "address": "{...}",
  "metadata": "{...}",
  "total_successful_requests": "...",
  "total_requests_in_progress": "...",
  "total_error_requests": "...",
  "total_issued_requests": "...",
  "load_metric_stats": []
}
address

(config.core.v3.Address) Upstream host address.

metadata

(Struct) Opaque and implementation dependent metadata of the endpoint. Envoy will pass this directly to the management server.

total_successful_requests

(uint64) 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.

total_requests_in_progress

(uint64) The total number of unfinished requests for this endpoint.

total_error_requests

(uint64) 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

total_issued_requests

(uint64) 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.

load_metric_stats

(repeated config.endpoint.v3.EndpointLoadMetricStats) Stats for multi-dimensional load balancing.

config.endpoint.v3.EndpointLoadMetricStats

[config.endpoint.v3.EndpointLoadMetricStats proto]

{
  "metric_name": "...",
  "num_requests_finished_with_metric": "...",
  "total_metric_value": "..."
}
metric_name

(string) Name of the metric; may be empty.

num_requests_finished_with_metric

(uint64) Number of calls that finished and included this metric.

total_metric_value

(double) Sum of metric values across all calls that finished with this metric for load_reporting_interval.

config.endpoint.v3.ClusterStats

[config.endpoint.v3.ClusterStats proto]

Per cluster load stats. Envoy reports these stats a management server in a LoadStatsRequest Next ID: 7

{
  "cluster_name": "...",
  "cluster_service_name": "...",
  "upstream_locality_stats": [],
  "total_dropped_requests": "...",
  "dropped_requests": [],
  "load_report_interval": "{...}"
}
cluster_name

(string, REQUIRED) The name of the cluster.

cluster_service_name

(string) 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.

upstream_locality_stats

(repeated config.endpoint.v3.UpstreamLocalityStats, REQUIRED) Need at least one.

total_dropped_requests

(uint64) 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.

dropped_requests

(repeated config.endpoint.v3.ClusterStats.DroppedRequests) Information about deliberately dropped requests for each category specified in the DropOverload policy.

load_report_interval

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

config.endpoint.v3.ClusterStats.DroppedRequests

[config.endpoint.v3.ClusterStats.DroppedRequests proto]

{
  "category": "...",
  "dropped_count": "..."
}
category

(string, REQUIRED) Identifier for the policy specifying the drop.

dropped_count

(uint64) Total number of deliberately dropped requests for the category.