统计¶
总则¶
集群管理有一个以 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> 并包含以下内容:
upstream_rq_headers_size |
Histogram |
每个上游的请求头大小(字节) |
upstream_rq_body_size |
Histogram |
每个上游的请求正文大小(字节) |
upstream_rs_headers_size |
Histogram |
每个上游的响应头大小(字节) |
upstream_rs_body_size |
Histogram |
每个上游的响应正文大小(字节) |