负载报告 (proto)

config.endpoint.v3.UpstreamLocalityStats

[config.endpoint.v3.UpstreamLocalityStats proto]

这些是 Envoy 以 LoadStatsResponse.load_reporting_interval 定义的频率报告给管理服务器的统计信息。 每个上游区域/区域的统计信息,以及可选的每个子区域统计信息。

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

(config.core.v3.Locality) 收集这些指标的区域、地区和可选端点组的名称。 区域和地区名称可能为空,如果未知。

total_successful_requests

(uint64) 该区域中端点成功完成的请求总数。

total_requests_in_progress

(uint64) 未完成的请求总数

total_error_requests

(uint64) 由于端点错误而失败的请求总数,汇总了该区域中所有端点。

total_issued_requests

(uint64) 自上次报告以来,此 Envoy 发出的请求总数。 此信息汇总了该区域中所有上游端点。

cpu_utilization

(config.endpoint.v3.UnnamedEndpointLoadMetricStats) 用于多维负载均衡的 CPU 利用率统计信息。 这通常来自通过 ORCA 报告的端点指标。

mem_utilization

(config.endpoint.v3.UnnamedEndpointLoadMetricStats) 用于多维负载均衡的内存利用率。 这通常来自通过 ORCA 报告的端点指标。

application_utilization

(config.endpoint.v3.UnnamedEndpointLoadMetricStats) 用于多维负载均衡的混合应用程序定义利用率。 这通常来自通过 ORCA 报告的端点指标。

load_metric_stats

(repeated config.endpoint.v3.EndpointLoadMetricStats) 用于多维负载均衡的命名统计信息。 这些通常来自通过 ORCA 报告的端点指标。

upstream_endpoint_stats

(repeated config.endpoint.v3.UpstreamEndpointStats) 此区域的端点粒度统计信息。 如果服务器通过设置 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) 上游主机地址。

metadata

(Struct) 端点的透明且实现依赖的元数据。 Envoy 会将此直接传递给管理服务器。

total_successful_requests

(uint64) 该区域中端点成功完成的请求总数。 这些包括 HTTP 的非 5xx 响应,其中错误源于客户端,端点已成功响应。 对于 gRPC,grpc-status 值是不包含在下面 total_error_requests 中的值。

total_requests_in_progress

(uint64) 此端点的未完成请求总数。

total_error_requests

(uint64) 由于端点错误而失败的请求总数。 对于 HTTP,这些是具有 5xx 状态码的响应,对于 gRPC,grpc-status 值

  • DeadlineExceeded

  • Unimplemented

  • Internal

  • Unavailable

  • Unknown

  • DataLoss

total_issued_requests

(uint64) 自上次报告以来,向此端点发出的请求总数。 单个 TCP 连接、HTTP 或 gRPC 请求或流计为一个请求。

load_metric_stats

(repeated config.endpoint.v3.EndpointLoadMetricStats) 用于多维负载均衡的统计信息。

config.endpoint.v3.EndpointLoadMetricStats

[config.endpoint.v3.EndpointLoadMetricStats proto]

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

(string) 指标的名称;可能为空。

num_requests_finished_with_metric

(uint64) 完成并包含此指标的调用次数。

total_metric_value

(double) 在 load_reporting_interval 中,完成此指标的所有调用中指标值的总和。

config.endpoint.v3.UnnamedEndpointLoadMetricStats

[config.endpoint.v3.UnnamedEndpointLoadMetricStats proto]

与 EndpointLoadMetricStats 相同,只是没有 metric_name 字段。

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

(uint64) 完成并包含此指标的调用次数。

total_metric_value

(double) 在 load_reporting_interval 中,完成此指标的所有调用中指标值的总和。

config.endpoint.v3.ClusterStats

[config.endpoint.v3.ClusterStats proto]

每个集群负载统计信息。 Envoy 在 LoadStatsRequest 中向管理服务器报告这些统计信息。 下一个 ID:7

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

(string, REQUIRED) 集群的名称。

cluster_service_name

(string) 集群的 eds_cluster_config service_name。 有可能两个集群向 EDS 发送相同的 service_name,在这种情况下,管理服务器应该对负载报告进行聚合。

upstream_locality_stats

(repeated config.endpoint.v3.UpstreamLocalityStats, REQUIRED) 需要至少一个。

total_dropped_requests

(uint64) 集群级统计信息,例如 total_successful_requests 可以通过对 upstream_locality_stats 进行求和来计算。 此外,下面还有其他集群范围的统计信息。

已丢弃的请求总数。 这涵盖了由 drop_overload 策略和断路器故意丢弃的请求。

dropped_requests

(repeated config.endpoint.v3.ClusterStats.DroppedRequests) 有关每个类别中故意丢弃的请求的信息,这些类别在 DropOverload 策略中指定。

load_report_interval

(Duration) 实际负载报告发生的期间。 这将保证包含所有报告的请求。 由于系统负载以及 Envoy 发送的 LoadStatsRequest 和管理服务器发送的 LoadStatsResponse 消息之间的延迟,这可能比 LoadStatsResponse 中请求的负载报告间隔更长。

config.endpoint.v3.ClusterStats.DroppedRequests

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

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

(string, REQUIRED) 指定丢弃的策略标识符。

dropped_count

(uint64) 该类别中故意丢弃的请求总数。