统计

概览

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

名称

类型

描述

cluster_added

计数器

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

cluster_modified

计数器

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

cluster_removed

计数器

已移除的总集群数(通过 CDS 移除)

cluster_updated

计数器

总集群更新数

cluster_updated_via_merge

计数器

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

update_merge_cancelled

计数器

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

update_out_of_merge_window

计数器

超出合并窗口的更新总数

active_clusters

仪表盘

当前活动(已预热)集群的数量

warming_clusters

仪表盘

当前正在预热(不活跃)的集群数量

除了集群管理器统计数据之外,每个工作线程还有以 thread_local_cluster_manager.<worker_id>. 为根的本地集群管理器统计树。以下列出统计数据。

名称

类型

描述

clusters_inflated

仪表盘

工作线程已初始化的集群数。如果使用集群延迟,则此数字应 <= (cluster_added - clusters_removed)。

每个集群都有一个以 cluster.<name>. 为根的统计树。以下列出统计数据

名称

类型

描述

upstream_cx_total

计数器

连接总数

upstream_cx_active

仪表盘

活动连接总数

upstream_cx_http1_total

计数器

HTTP/1.1 连接总数

upstream_cx_http2_total

计数器

HTTP/2 连接总数

upstream_cx_http3_total

计数器

HTTP/3 连接总数

upstream_cx_connect_fail

计数器

连接失败总数

upstream_cx_connect_timeout

计数器

连接连接超时总数

upstream_cx_connect_with_0_rtt

计数器

能够发送 0-rtt 请求(提前数据)的连接总数。

upstream_cx_idle_timeout

计数器

连接空闲超时总数

upstream_cx_max_duration_reached

计数器

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

upstream_cx_connect_attempts_exceeded

计数器

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

upstream_cx_overflow

计数器

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

upstream_cx_connect_ms

直方图

连接建立毫秒数

upstream_cx_length_ms

直方图

连接持续毫秒数

upstream_cx_destroy

计数器

已销毁的连接总数

upstream_cx_destroy_local

计数器

在本地销毁的连接总数

upstream_cx_destroy_remote

计数器

在远程销毁的连接总数

upstream_cx_destroy_with_active_rq

计数器

已销毁的连接总数,这些连接具有 1 个或更多个活动请求

upstream_cx_destroy_local_with_active_rq

计数器

在本地销毁的连接总数,这些连接具有 1 个或更多个活动请求

upstream_cx_destroy_remote_with_active_rq

计数器

在远程销毁的连接总数,这些连接具有 1 个或更多个活动请求

upstream_cx_close_notify

计数器

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

upstream_cx_rx_bytes_total

计数器

接收的连接字节总数

upstream_cx_rx_bytes_buffered

仪表盘

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

upstream_cx_tx_bytes_total

计数器

发送的连接字节总数

upstream_cx_tx_bytes_buffered

仪表盘

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

upstream_cx_pool_overflow

计数器

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

upstream_cx_protocol_error

计数器

连接协议错误总数

upstream_cx_max_requests

计数器

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

upstream_cx_none_healthy

计数器

由于没有健康的宿主机而无法建立连接的次数

upstream_rq_total

计数器

请求总数

upstream_rq_active

仪表盘

活动请求总数

upstream_rq_pending_total

计数器

等待连接池连接的请求总数

upstream_rq_pending_overflow

计数器

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

upstream_rq_pending_failure_eject

计数器

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

upstream_rq_pending_active

仪表盘

等待连接池连接的活动请求总数

upstream_rq_cancelled

计数器

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

upstream_rq_maintenance_mode

计数器

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

upstream_rq_timeout

计数器

等待响应超时请求总数

upstream_rq_max_duration_reached

计数器

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

upstream_rq_per_try_timeout

计数器

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

upstream_rq_rx_reset

计数器

远程重置的请求总数

upstream_rq_tx_reset

计数器

在本地重置的请求总数

upstream_rq_retry

计数器

请求重试总数

upstream_rq_retry_backoff_exponential

计数器

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

upstream_rq_retry_backoff_ratelimited

计数器

使用速率限制退避策略的重试总数

upstream_rq_retry_limit_exceeded

计数器

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

upstream_rq_retry_success

计数器

请求重试成功的总数

upstream_rq_retry_overflow

计数器

由于断路器或超过 重试预算 而未重试的请求总数

upstream_flow_control_paused_reading_total

计数器

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

upstream_flow_control_resumed_reading_total

计数器

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

upstream_flow_control_backed_up_total

计数器

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

upstream_flow_control_drained_total

计数器

上游连接清空并恢复从下游读取的总次数

upstream_internal_redirect_failed_total

计数器

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

upstream_internal_redirect_succeeded_total

计数器

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

membership_change

计数器

集群成员资格更改总数

membership_healthy

仪表盘

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

membership_degraded

仪表盘

当前集群 降级 总数

membership_excluded

仪表盘

当前集群 排除 总数

membership_total

仪表盘

当前集群成员资格总数

retry_or_shadow_abandoned

计数器

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

config_reload

计数器

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

update_attempt

计数器

服务发现尝试的集群成员资格更新总数

update_success

计数器

服务发现成功更新的集群成员资格总数

update_failure

计数器

服务发现失败更新的集群成员资格总数

update_duration

直方图

花费在更新配置上的时间

update_empty

计数器

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

update_no_rebuild

计数器

没有导致任何集群负载均衡结构重建的成功集群成员资格更新总数

version

仪表盘

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

warming_state

仪表盘

当前集群预热状态

max_host_weight

仪表盘

集群中任何宿主机最大权重

bind_errors

计数器

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

assignment_timeout_received

计数器

收到的具有端点租约信息的分配总数。

assignment_stale

计数器

收到分配在新的分配到达之前变为陈旧的次数。

HTTP/3 协议统计

HTTP/3 协议统计是全局的,以下列出统计数据

名称

类型

描述

upstream.<tx/rx>.quic_connection_close_error_code_<error_code>

计数器

延迟初始化以记录每个 QUIC 连接关闭错误代码的一组计数器。

upstream.<tx/rx>.quic_reset_stream_error_code_<error_code>

计数器

延迟初始化以记录每个 QUIC 流重置错误代码的一组计数器。

健康检查统计

如果配置了健康检查,则集群将有一个以 cluster.<name>.health_check. 为根的额外统计树。以下列出统计数据

名称

类型

描述

attempt

计数器

健康检查次数

success

计数器

成功健康检查次数

failure

计数器

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

passive_failure

计数器

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

network_failure

计数器

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

verify_cluster

计数器

尝试集群名称验证的健康检查次数

healthy

仪表盘

健康成员数量

异常检测统计

如果为集群配置了 异常值检测,统计信息将以 cluster.<name>.outlier_detection. 为根,并包含以下内容

名称

类型

描述

ejections_enforced_total

计数器

由于任何异常值类型而强制执行的剔除次数

ejections_active

仪表盘

当前剔除的主机数量

ejections_overflow

计数器

由于最大剔除百分比而中止的剔除次数

ejections_enforced_consecutive_5xx

计数器

强制执行的连续 5xx 剔除次数

ejections_detected_consecutive_5xx

计数器

检测到的连续 5xx 剔除次数(即使未强制执行)

ejections_enforced_success_rate

计数器

强制执行的成功率异常值剔除次数。此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。有关详细信息,请参阅 异常值检测文档

ejections_detected_success_rate

计数器

检测到的成功率异常值剔除次数(即使未强制执行)。此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。有关详细信息,请参阅 异常值检测文档

ejections_enforced_consecutive_gateway_failure

计数器

强制执行的连续网关故障剔除次数

ejections_detected_consecutive_gateway_failure

计数器

检测到的连续网关故障剔除次数(即使未强制执行)

ejections_enforced_consecutive_local_origin_failure

计数器

强制执行的连续本地来源故障剔除次数

ejections_detected_consecutive_local_origin_failure

计数器

检测到的连续本地来源故障剔除次数(即使未强制执行)

ejections_enforced_local_origin_success_rate

计数器

针对本地来源的故障强制执行的成功率异常值剔除次数

ejections_detected_local_origin_success_rate

计数器

针对本地来源的故障检测到的成功率异常值剔除次数(即使未强制执行)

ejections_enforced_failure_percentage

计数器

强制执行的失败百分比异常值剔除次数。此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。有关详细信息,请参阅 异常值检测文档

ejections_detected_failure_percentage

计数器

检测到的失败百分比异常值剔除次数(即使未强制执行)。此计数器的确切含义取决于 outlier_detection.split_external_local_origin_errors 配置项。有关详细信息,请参阅 异常值检测文档

ejections_enforced_failure_percentage_local_origin

计数器

针对本地来源的故障强制执行的失败百分比异常值剔除次数

ejections_detected_failure_percentage_local_origin

计数器

针对本地来源的故障检测到的失败百分比异常值剔除次数(即使未强制执行)

ejections_total

计数器

已弃用。由于任何异常值类型(即使未强制执行)而剔除的次数

ejections_consecutive_5xx

计数器

已弃用。连续 5xx 剔除的次数(即使未强制执行)

断路器统计信息

断路器统计信息将以 cluster.<name>.circuit_breakers.<priority>. 为根,并包含以下内容

名称

类型

描述

cx_open

仪表盘

连接断路器是否在其并发限制内(0)或已达到容量且不再允许(1)

cx_pool_open

仪表盘

连接池断路器是否在其并发限制内(0)或已达到容量且不再允许(1)

rq_pending_open

仪表盘

挂起请求断路器是否在其并发限制内(0)或已达到容量且不再允许(1)

rq_open

仪表盘

请求断路器是否在其并发限制内(0)或已达到容量且不再允许(1)

rq_retry_open

仪表盘

重试断路器是否在其并发限制内(0)或已达到容量且不再允许(1)

remaining_cx

仪表盘

断路器达到其并发限制之前剩余的连接数

remaining_pending

仪表盘

断路器达到其并发限制之前剩余的挂起请求数

remaining_rq

仪表盘

断路器达到其并发限制之前剩余的请求数

remaining_retries

仪表盘

断路器达到其并发限制之前剩余的重试次数

注意

remaining_ 为前缀的指标默认情况下不会生成。若要跟踪断路器打开之前剩余的资源数量,请在断路器配置中将参数 track_remaining 设置为 true。

超时预算统计信息

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

名称

类型

描述

upstream_rq_timeout_budget_percent_used

直方图

用于等待响应的全局超时的百分比

upstream_rq_timeout_budget_per_try_percent_used

直方图

用于等待响应的每次尝试超时的百分比

动态 HTTP 统计信息

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

名称

类型

描述

upstream_rq_completed

计数器

完成的总上游请求数

upstream_rq_<*xx>

计数器

汇总的 HTTP 响应代码(例如,2xx、3xx 等)

upstream_rq_<*>

计数器

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

upstream_rq_time

直方图

请求时间(毫秒)

canary.upstream_rq_completed

计数器

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

canary.upstream_rq_<*xx>

计数器

上游金丝雀汇总的 HTTP 响应代码

canary.upstream_rq_<*>

计数器

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

canary.upstream_rq_time

直方图

上游金丝雀请求时间(毫秒)

internal.upstream_rq_completed

计数器

完成的总内部来源请求数

internal.upstream_rq_<*xx>

计数器

内部来源汇总的 HTTP 响应代码

internal.upstream_rq_<*>

计数器

内部来源特定的 HTTP 响应代码

internal.upstream_rq_time

直方图

内部来源请求时间(毫秒)

external.upstream_rq_completed

计数器

完成的总外部来源请求数

external.upstream_rq_<*xx>

计数器

外部来源汇总的 HTTP 响应代码

external.upstream_rq_<*>

计数器

外部来源特定的 HTTP 响应代码

external.upstream_rq_time

直方图

外部来源请求时间(毫秒)

TLS 统计信息

如果集群使用 TLS,则以下统计信息将以 cluster.<name>.ssl. 为根

名称

类型

描述

connection_error

计数器

总 TLS 连接错误(不包括证书验证失败)

handshake

计数器

总 TLS 连接握手成功次数

session_reused

计数器

总 TLS 会话恢复成功次数

no_certificate

计数器

总 TLS 连接(没有客户端证书)成功次数

fail_verify_no_cert

计数器

由于缺少客户端证书而导致的 TLS 连接失败总次数

fail_verify_error

计数器

由于 CA 验证失败而导致的 TLS 连接失败总次数

fail_verify_san

计数器

由于 SAN 验证失败而导致的 TLS 连接失败总次数

fail_verify_cert_hash

计数器

由于证书固定验证失败而导致的 TLS 连接失败总次数

ocsp_staple_failed

计数器

由于不符合 OCSP 策略而导致的 TLS 连接失败总次数

ocsp_staple_omitted

计数器

没有将 OCSP 响应进行固定而成功建立的 TLS 连接总次数

ocsp_staple_responses

计数器

总 TLS 连接(有效的 OCSP 响应可用)(无论客户端是否请求固定)

ocsp_staple_requests

计数器

客户端请求 OCSP 固定时建立的 TLS 连接总次数

ciphers.<cipher>

计数器

使用密码 <cipher> 成功建立的 TLS 连接总次数

curves.<curve>

计数器

使用 ECDHE 曲线 <curve> 成功建立的 TLS 连接总次数

sigalgs.<sigalg>

计数器

使用签名算法 <sigalg> 成功建立的 TLS 连接总次数

versions.<version>

计数器

使用协议版本 <version> 成功建立的 TLS 连接总次数

was_key_usage_invalid

计数器

使用 无效 keyUsage 扩展 成功建立的 TLS 连接总次数。(此功能在 BoringSSL FIPS 中尚不可用,因为存在 问题 #28246

TCP 统计信息

以下 TCP 统计信息在使用 TCP 统计信息传输套接字 时可用,其根目录为 cluster.<name>.tcp_stats.

注意

这些指标由操作系统提供。由于操作系统指标可用性和测量方法的不同,这些值可能在不同操作系统或同一操作系统的不同版本之间不一致。

名称

类型

描述

cx_tx_segments

计数器

总 TCP 传输段数

cx_rx_segments

计数器

总 TCP 接收段数

cx_tx_data_segments

计数器

总 TCP 传输段数(数据长度非零)

cx_rx_data_segments

计数器

总 TCP 接收段数(数据长度非零)

cx_tx_retransmitted_segments

计数器

总 TCP 重传段数

cx_rx_bytes_received

计数器

总有效负载字节数(已为其发送 TCP 确认)

cx_tx_bytes_sent

计数器

总有效负载字节数(包括重传字节)

cx_tx_unsent_bytes

仪表盘

Envoy 已发送给操作系统但尚未发送的字节数

cx_tx_unacked_segments

仪表盘

已传输但尚未确认的段数

cx_tx_percent_retransmitted_segments

直方图

连接上重传段数的百分比

cx_rtt_us

直方图

平滑的往返时间估计值(微秒)

cx_rtt_variance_us

直方图

往返时间(RTT)的估计方差,单位为微秒。较高的值表示更大的可变性。

备用树动态 HTTP 统计信息

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

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

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

名称

类型

描述

upstream_rq_<*xx>

计数器

汇总的 HTTP 响应代码(例如,2xx、3xx 等)

upstream_rq_<*>

计数器

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

upstream_rq_time

直方图

请求时间(毫秒)

负载均衡器统计信息

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

名称

类型

描述

lb_recalculate_zone_structures

计数器

为上游区域选择快速决策而重新生成的区域感知路由结构的次数

lb_healthy_panic

计数器

负载均衡器处于恐慌模式下的总请求数

lb_zone_cluster_too_small

计数器

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

lb_zone_routing_all_directly

计数器

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

lb_zone_routing_sampled

计数器

将一些请求发送到同一个区域

lb_zone_routing_cross_zone

计数器

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

lb_local_cluster_not_ok

计数器

本地主机集未设置或本地集群处于恐慌模式

lb_zone_number_differs

计数器

由于功能标志被禁用并且本地集群和上游集群中的区域数量不同,因此没有区域感知路由

lb_zone_no_capacity_left

计数器

由于舍入误差,最终使用随机区域选择时的总次数

original_dst_host_invalid

计数器

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

负载均衡器子集统计信息

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

名称

类型

描述

lb_subsets_active

仪表盘

当前可用子集的数量

lb_subsets_created

计数器

创建的子集数量

lb_subsets_removed

计数器

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

lb_subsets_selected

计数器

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

lb_subsets_fallback

计数器

调用回退策略的次数

lb_subsets_fallback_panic

计数器

子集恐慌模式触发的次数

lb_subsets_single_host_per_subset_duplicate

仪表盘

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

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

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

名称

类型

描述

size

仪表盘

环上主机哈希的总数

min_hashes_per_host

仪表盘

单个主机的最小哈希数

max_hashes_per_host

仪表盘

单个主机的最大哈希数

Maglev 负载均衡器统计信息

用于监控使用 Maglev 负载均衡器 时有效主机权重的统计信息。统计信息以 cluster.<name>.maglev_lb. 为根,并包含以下统计信息

名称

类型

描述

min_entries_per_host

仪表盘

单个主机的最小条目数

max_entries_per_host

仪表盘

单个主机的最大条目数

请求响应大小统计信息

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

名称

类型

描述

upstream_rq_headers_size

直方图

每个上游的请求头大小,以字节为单位

upstream_rq_body_size

直方图

每个上游的请求体大小,以字节为单位

upstream_rs_headers_size

直方图

每个上游的响应头大小,以字节为单位

upstream_rs_body_size

直方图

每个上游的响应体大小,以字节为单位