统计

总则

集群管理有一个以 cluster_manager. 为根的统计树,且有如下统计信息。在 stats 名称中的任何 : 字符都将被替换为 _。 统计信息包含由集群管理器管理的所有集群,包括用于数据平面上游的集群和控制平面 xDs 的集群。

名称

类型

描述

cluster_added

Counter

添加的群集总数(通过静态配置或 CDS)

cluster_modified

Counter

修改的群集总数(通过 CDS)

cluster_removed

Counter

删除的群集总数(通过 CDS)

cluster_updated

Counter

群集更新总数

cluster_updated_via_merge

Counter

作为合并更新应用的群集更新总数

update_merge_cancelled

Counter

已取消并提前交付的合并更新总数

update_out_of_merge_window

Counter

从合并窗口到达的总更新数

active_clusters

Gauge

当前活动(warmed)群集数

warming_clusters

Gauge

当前处在 warming(非活动)的群集数

每个集群有一个根在 cluster.<name>. 的统计树,有如下统计信息:

名称

类型

描述

upstream_cx_total

Counter

连接总数

upstream_cx_active

Gauge

活动的连接总数

upstream_cx_http1_total

Counter

HTTP/1.1 连接总数

upstream_cx_http2_total

Counter

HTTP/2 连接总数

upstream_cx_connect_fail

Counter

连接失败总数

upstream_cx_connect_timeout

Counter

连接超时总数

upstream_cx_idle_timeout

Counter

连接 idle 超时总数

upstream_cx_connect_attempts_exceeded

Counter

超过配置连接尝试次数的连续连接失败总数

upstream_cx_overflow

Counter

群集连接断路器溢出的总次数

upstream_cx_connect_ms

Histogram

连接建立毫秒数

upstream_cx_length_ms

Histogram

连接长度毫秒数

upstream_cx_destroy

Counter

断开的连接总数

upstream_cx_destroy_local

Counter

本地断开的连接总数

upstream_cx_destroy_remote

Counter

远程断开的连接总数

upstream_cx_destroy_with_active_rq

Counter

1+ 个活动请求断开的连接总数

upstream_cx_destroy_local_with_active_rq

Counter

使用 1+ 个活动请求在本地断开的连接总数

upstream_cx_destroy_remote_with_active_rq

Counter

使用 1+ 个活动请求远程断开的连接总数

upstream_cx_close_notify

Counter

通过 HTTP/1.1 连接关闭头或 HTTP/2 GOAWAY 关闭的连接总数

upstream_cx_rx_bytes_total

Counter

接收的连接字节总数

upstream_cx_rx_bytes_buffered

Gauge

当前缓冲的接收连接字节数

upstream_cx_tx_bytes_total

Counter

发送的连接字节总数

upstream_cx_tx_bytes_buffered

Gauge

当前缓冲的发送连接字节数

upstream_cx_pool_overflow

Counter

群集的连接池断路器溢出的总次数

upstream_cx_protocol_error

Counter

连接协议错误总数

upstream_cx_max_requests

Counter

由于最大请求数而关闭的连接总数

upstream_cx_none_healthy

Counter

由于没有正常主机而未建立连接的总次数

upstream_rq_total

Counter

请求总数

upstream_rq_active

Gauge

活动的请求总数

upstream_rq_pending_total

Counter

挂起连接池连接的请求总数

upstream_rq_pending_overflow

Counter

溢出连接池或请求(主要针对 HTTP/2)断路并失败的请求总数

upstream_rq_pending_failure_eject

Counter

由于连接池连接失败或远程连接终止失败的请求总数

upstream_rq_pending_active

Gauge

挂起连接池连接的活动请求总数

upstream_rq_cancelled

Counter

在获取连接池连接之前取消的请求总数

upstream_rq_maintenance_mode

Counter

由于 维护模式 导致立即 503 的请求总数

upstream_rq_timeout

Counter

等待响应超时的请求总数

upstream_rq_max_duration_reached

Counter

由于达到最大持续时间而关闭的请求总数

upstream_rq_per_try_timeout

Counter

达到每次尝试超时的请求总数(启用请求对冲时除外)

upstream_rq_rx_reset

Counter

远程重置的请求总数

upstream_rq_tx_reset

Counter

本地重置的请求总数

upstream_rq_retry

Counter

请求重试总次数

upstream_rq_retry_backoff_exponential

Counter

使用指数退避策略的总重试次数

upstream_rq_retry_backoff_ratelimited

Counter

使用有限退避策略的总重试次数

upstream_rq_retry_limit_exceeded

Counter

由于超过 配置的最大重试次数 而未重试的请求总数

upstream_rq_retry_success

Counter

请求重试成功总数

upstream_rq_retry_overflow

Counter

由于线路中断或超出 预置的重试次数 而未重试的请求总数

upstream_flow_control_paused_reading_total

Counter

流量控制从上游暂停读取的总次数

upstream_flow_control_resumed_reading_total

Counter

流量控制从上游恢复读取的总次数

upstream_flow_control_backed_up_total

Counter

上游连接备份并暂停从下游读取的总次数

upstream_flow_control_drained_total

Counter

上游连接从下游排出并恢复读取的总次数

upstream_internal_redirect_failed_total

Counter

失败的内部重定向导致向下游传递重定向的总次数。

upstream_internal_redirect_succeed_total

Counter

内部重定向导致第二个上行请求的总次数。

membership_change

Counter

集群成员更改总数

membership_healthy

Gauge

当前群集健康总数(包括健康检查和异常值检测)

membership_degraded

Gauge

当前集群降级总数

membership_total

Gauge

当前集群成员总数

retry_or_shadow_abandoned

Counter

由于缓冲区限制而取消映射或重试缓冲的总次数

config_reload

Counter

由于配置不同而导致配置重新加载的API获取总数

update_attempt

Counter

通过服务发现尝试的群集成员更新总数

update_success

Counter

通过服务发现列出的成功群集成员更新总数

update_failure

Counter

通过服务发现列出的失败群集成员更新总数

update_empty

Counter

集群成员更新以空集群负载分配结束并继续以前的配置总数

update_no_rebuild

Counter

未导致任何群集负载平衡结构重建的成功群集成员更新总数

version

Gauge

上次成功获取 API 的内容的哈希

max_host_weight

Gauge

群集中任意主机的最大权重

bind_errors

Counter

将套接字绑定到配置的源地址的错误总数

assignment_timeout_received

Counter

接收到的具有终结点租用信息的总分配数

assignment_stale

Counter

新分配到达之前接收的分配过期的次数

健康检查统计

如果配置了健康检查,每个集群有一个以 cluster.<name>.health_check. 为根的统计树,且有如下统计信息:

名称

类型

描述

attempt

Counter

健康检查次数

success

Counter

成功的健康检查次数

failure

Counter

立即失败的健康检查(例如 HTTP 503)以及网络故障数

passive_failure

Counter

由被动事件导致的健康检查失败次数(比如 x-envoy-immediate-health-check-fail)

network_failure

Counter

由于网络错误导致的健康检查失败数

verify_cluster

Counter

尝试群集名称验证的运行状况检查数

healthy

Gauge

健康成员数

异常检测统计

如果在集群中配置了 异常检测, 集群有一个以 cluster.<name>.outlier_detection. 为根的统计树,且有如下统计信息:

名称

类型

描述

ejections_enforced_total

Counter

由于任何异常类型而强制弹出的次数

ejections_active

Gauge

当前弹出的主机数

ejections_overflow

Counter

由于最大弹出而中止的弹出数

ejections_enforced_consecutive_5xx

Counter

强制连续 5xx 弹出次数

ejections_detected_consecutive_5xx

Counter

检测到的连续的 5xx 弹出次数(即使未强制)

ejections_enforced_success_rate

Counter

强制成功率异常值弹出数。 此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。 详情参考 异常检测文档

ejections_detected_success_rate

Counter

检测到的成功率异常值弹出数(即使未强制)。 此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。 详情参考 异常过滤文档

ejections_enforced_consecutive_gateway_failure

Counter

强制的连续网关故障弹出次数

ejections_detected_consecutive_gateway_failure

Counter

检测到的连续网关故障弹出次数(即使未强制)

ejections_enforced_consecutive_local_origin_failure

Counter

强制的连续本地源故障弹出数

ejections_detected_consecutive_local_origin_failure

Counter

检测到的连续本地原点故障弹出次数(即使未强制)

ejections_enforced_local_origin_success_rate

Counter

本地发生的故障的强制成功率异常值弹出数

ejections_detected_local_origin_success_rate

Counter

检测到的本地故障的成功率异常值弹出数(即使未强制)

ejections_enforced_failure_percentage

Counter

强制失败百分比异常值弹出数。 此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。 详情参考 异常过滤文档

ejections_detected_failure_percentage

Counter

检测到的故障百分比异常弹出数(即使未强制)。 此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。 详情参考 异常过滤文档

ejections_enforced_failure_percentage_local_origin

Counter

本地发生的故障的强制故障百分比异常值弹出数

ejections_detected_failure_percentage_local_origin

Counter

本地故障的检测到的故障百分比异常值弹出数(即使未强制)

ejections_total

Counter

已弃用。 任何异常值类型导致的弹出次数(即使未强制)

ejections_consecutive_5xx

Counter

已弃用。 连续5xx弹出次数(即使未强制)

断路器统计

断路器统计以 cluster.<name>.circuit_breakers.<priority>. 为根,包含如下信息:

名称

类型

描述

cx_open

Gauge

连接断路器是关闭(0)还是打开(1)

cx_pool_open

Gauge

连接池断路器是关闭(0)还是打开(1)

rq_pending_open

Gauge

挂起的请求断路器是关闭(0)还是打开(1)

rq_open

Gauge

断路器是关闭(0)还是打开(1)

rq_retry_open

Gauge

重试断路器是关闭(0)还是打开(1)

remaining_cx

Gauge

断路器断开前的剩余连接数

remaining_pending

Gauge

断路器断开前的剩余未决请求数

remaining_rq

Gauge

断路器断开前的剩余请求数

remaining_retries

Gauge

断路器断开前的剩余重试次数

超时预算统计

如果打开了 超时预算统计跟踪, 统计信息将添加到 cluster.<name> 并包含以下内容:

名称

类型

描述

upstream_rq_timeout_budget_percent_used

Histogram

等待响应时使用的全局超时百分比是多少

upstream_rq_timeout_budget_per_try_percent_used

Histogram

每次尝试超时等待响应的百分比是多少

动态 HTTP 统计

如果使用 HTTP,还可以使用动态 HTTP 响应代码统计信息。 这些信息由各种内部系统以及一些过滤器(如路由过滤器 路由过滤器速率限制过滤器)发出。它们的根位于 cluster.<name> 并包含以下统计信息:

名称

类型

描述

upstream_rq_completed

Counter

已完成的上游请求总数

upstream_rq_<*xx>

Counter

聚合HTTP响应代码(例如 2xx、3xx 等)

upstream_rq_<*>

Counter

特定的HTTP响应代码(例如 201、302 等)

upstream_rq_time

Histogram

请求时间毫秒数

canary.upstream_rq_completed

Counter

已完成的上游金丝雀请求总数

canary.upstream_rq_<*xx>

Counter

上游金丝雀聚合HTTP响应代码

canary.upstream_rq_<*>

Counter

上游特定于金丝雀的HTTP响应代码

canary.upstream_rq_time

Histogram

上游金丝雀请求时间毫秒

internal.upstream_rq_completed

Counter

已完成的内部来源请求总数

internal.upstream_rq_<*xx>

Counter

内部源聚合 HTTP 响应代码

internal.upstream_rq_<*>

Counter

内部源指定 HTTP 响应代码

internal.upstream_rq_time

Histogram

内部原点请求时间(毫秒)

external.upstream_rq_completed

Counter

已完成的外部来源请求总数

external.upstream_rq_<*xx>

Counter

外部源聚合 HTTP 响应代码

external.upstream_rq_<*>

Counter

外部源指定 HTTP 响应代码

external.upstream_rq_time

Histogram

外部原点请求时间(毫秒)

备用树动态 HTTP 统计信息

如果配置了备用树统计信息,它们将出现在 cluster.<name>.<alt name>. 命名空间中。 生成的统计信息与 上面 的动态 HTTP 统计信息部分中记录的信息相同。

每个服务区域的动态 HTTP 统计信息

对于本地服务,如果服务区是可用的(通过 --service-zone) 或者 上游集群, Envoy 将在 cluster.<name>.zone.<from_zone>.<to_zone>. 命名空间中跟踪以下统计信息:

名称

类型

描述

upstream_rq_<*xx>

Counter

聚合 HTTP 响应代码(例如 2xx、3xx 等)

upstream_rq_<*>

Counter

特定 HTTP 响应代码(例如 201、302 等)

upstream_rq_time

Histogram

请求时间(毫秒)

负载均衡统计信息

用于监视负载均衡器决策的统计信息。统计数据以 cluster.<name> 为根并包含以下信息:

名称

类型

描述

lb_recalculate_zone_structures

Counter

用于快速决定上游位置选择,重新生成位置感知路由结构的次数

lb_healthy_panic

Counter

在紧急模式下与负载均衡器进行负载均衡的请求总数

lb_zone_cluster_too_small

Counter

由于上游集群规模较小,因此没有区域感知路由

lb_zone_routing_all_directly

Counter

将所有请求直接发送到同一区域

lb_zone_routing_sampled

Counter

向同一区域发送一些请求

lb_zone_routing_cross_zone

Counter

区域感知路由模式,但必须跨区域发送

lb_local_cluster_not_ok

Counter

未设置本地主机集或本地群集处于紧急模式

lb_zone_number_differs

Counter

本地和上游集群中的区域数不同

lb_zone_no_capacity_left

Counter

由于舍入误差以随机区域选择结束的总次数

original_dst_host_invalid

Counter

传递到原始目标负载均衡器的非法主机总数

负载均衡器子集统计信息

用于监视 负载均衡器子集 决策的统计信息。 统计信息以 cluster.<name> 为根,并包含以下信息:

名称

类型

描述

lb_subsets_active

Gauge

当前可用子集数

lb_subsets_created

Counter

创建的子集数

lb_subsets_removed

Counter

由于没有主机而删除的子集数

lb_subsets_selected

Counter

选择任何子集进行负载均衡的次数

lb_subsets_fallback

Counter

调用回退策略的次数

lb_subsets_fallback_panic

Counter

触发子集合紧急模式的次数

lb_subsets_single_host_per_subset_duplicate

Gauge

使用 single_host_per_subset 时的重复(未使用)主机数

哈希环负载均衡器统计信息

使用 哈希环负载均衡器 时,监视哈希大小和有效分布的统计信息。 统计信息以 cluster.<name>.ring_hash_lb. 为根,并包含以下信息:

名称

类型

描述

size

Gauge

环上的主机哈希总数

min_hashes_per_host

Gauge

单个主机的最小哈希数

max_hashes_per_host

Gauge

单个主机的最大哈希数

磁浮负载均衡器统计

使用 Maglev load balancer 时,监控有效主机权重的统计信息。 Stats are rooted at cluster.<name>.maglev_lb. and contain the following statistics: 统计数据来源于 cluster.<name>.maglev_lb. 并包含以下信息:

名称

类型

描述

min_entries_per_host

Gauge

单个主机的最小条目数

max_entries_per_host

Gauge

单个主机的最大条目数

请求-响应大小统计信息

如果跟踪了请求-响应大小统计信息, 统计信息将添加到 cluster.<name> 并包含以下内容:

:header:名称, 类型, 描述

upstream_rq_headers_size

Histogram

每个上游的请求头大小(字节)

upstream_rq_body_size

Histogram

每个上游的请求正文大小(字节)

upstream_rs_headers_size

Histogram

每个上游的响应头大小(字节)

upstream_rs_body_size

Histogram

每个上游的响应正文大小(字节)