Istio 控制平面与数据平面核心指标

Posted by 陈谭军 on Tuesday, November 1, 2022 | 阅读 |,阅读约 16 分钟

部署 Istio

参考 文档 部署 Istio 集群,如下所示:

➜  istio-1.16.5 kubectl -n istio-system get pod
NAME                                     READY   STATUS    RESTARTS   AGE
istio-eastwestgateway-64fd87c956-8nlpg   1/1     Running   0          29h
istiod-66c5ff9789-bsc75                  1/1     Running   0          29h

部署 Prometheus 与 Grafana

参考 文档 部署 Prometheus,参考 文档 部署 Grafana,Prometheus 如下所示:

kubectl -n istio-system port-forward --address 0.0.0.0 pod/prometheus-85674d4cb8-f7q2l 9090:9090
http://localhost:9090/graph

Grafana 如下所示:

kubectl -n istio-system port-forward --address 0.0.0.0 pod/grafana-8cb9f8f79-5b42p   3000:3000

http://localhost:3000

➜  istio-1.16.5 kubectl -n istio-system get pod
NAME                                     READY   STATUS    RESTARTS   AGE
grafana-8cb9f8f79-5b42p                  1/1     Running   0          2d2h
istio-eastwestgateway-64fd87c956-8nlpg   1/1     Running   0          3d4h
istiod-66c5ff9789-bsc75                  1/1     Running   0          3d4h
prometheus-85674d4cb8-f7q2l              2/2     Running   0          3d3h

自定义指标

如果我们需要自定义遥测 telemetry v2 指标,比如将 request_host 和 destination_port 维度添加到 gateway 和 sidecar 在 inbound 和 outbound 暴露的 requests_total 指标,请使用以下命令。

cat <<EOF > ./custom_metrics.yaml
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
  name: namespace-metrics
spec:
  metrics:
  - providers:
    - name: prometheus
    overrides:
    - match:
        metric: REQUEST_COUNT
      tagOverrides:
        destination_port:
          value: "string(destination.port)"
        request_host:
          value: "request.host"
EOF
kubectl apply -f custom_metrics.yaml

productpage-v1-66756cddfd-hl9df 的 access_log 日志如下所示:

{
	"protocol": "HTTP/1.1"	"upstream_host": "172.16.0.20:9080"	"upstream_service_time": "1"	"upstream_cluster": "inbound|9080||"	"downstream_remote_address": "172.16.0.44:47564"	"requested_server_name": null,
	"bytes_sent": 0,
	"response_code_details": "via_upstream"	"method": "HEAD"	"x_forwarded_for": null,
	"route_name": "default"	"duration": 2,
	"response_flags": "-"	"user_agent": "curl/7.81.0"	"upstream_local_address": "127.0.0.6:38005"	"bytes_received": 0,
	"start_time": "2023-12-15T11:53:34.218Z"	"upstream_transport_failure_reason": null,
	"request_id": "af309304-4b56-43e1-9b33-02a5faa9bdd3"	"path": "/"	"downstream_local_address": "172.16.0.20:9080"	"connection_termination_details": null,
	"response_code": 200,
	"authority": "productpage:9080"
}

Prometheus 中的 productpage 指标如下所示,其中 request_host=“productpage:9080” 就是我们自定义的 metric 指标。

istio_requests_total{app="productpage"connection_security_policy="none"destination_app="productpage"destination_canonical_revision="v1"destination_canonical_service="productpage"destination_cluster="gz-cce-hh4z2ea2"destination_port="9080"destination_principal="unknown"destination_service="productpage.default.svc.cluster.local"destination_service_name="productpage"destination_service_namespace="default"destination_version="v1"destination_workload="productpage-v1"destination_workload_namespace="default"instance="172.16.0.20:15020"job="kubernetes-pods"namespace="default"pod="productpage-v1-66756cddfd-hl9df"pod_template_hash="66756cddfd"reporter="destination"request_host="productpage:9080"request_protocol="http"response_code="200"response_flags="-"security_istio_io_tlsMode="istio"service_istio_io_canonical_name="productpage"service_istio_io_canonical_revision="v1"source_app="unknown"source_canonical_revision="latest"source_canonical_service="unknown"source_cluster="unknown"source_principal="unknown"source_version="unknown"source_workload="unknown"source_workload_namespace="unknown"topology_istio_io_network="gz"version="v1"}

标签(Labels)

指标中包含的标签,可以用来过滤和聚合数据,具体如下:

  • 报告者(Reporter):标识了请求的报告者,如果报告来自服务器 Istio 代理,则将其设置为 destination,如果报告来自客户端 Istio 代理或网关,则将其设置为 source。
  • 源工作负载(Source Workload):标识了控制源的源工作负载的名称,如果源信息丢失,则为 unknown。
  • 源工作负载命名空间(Source Workload Namespace):标识源工作负载的命名空间,如果源信息丢失,则为 unknown。
  • 源主体(Source Principal):标识流量源的对等主体,当使用对等认证时设置。
  • 源应用程序(Source App):根据源工作负载的应用程序 app 标签来标识源应用程序,或者如果源信息丢失则为 unknown。
  • 源版本(Source Version):标识源工作负载的版本,如果源信息丢失,则为 unknown。
  • 目标工作负载(Destination Workload):标识目标工作负载的名称,如果目标信息丢失,则为 unknown。
  • 目标工作负载命名空间(Destination Workload Namespace):标识目标工作负载的命名空间,如果目标信息丢失,则为 unknown。
  • 目标主体(Destination Principal):标识流量目标的对等主体,当使用对等认证时设置。
  • 目标应用程序(Destination App):根据目标工作负载的应用程序 app 标签来标识目标应用程序,或者如果目标信息丢失则为 unknown。
  • 目标版本(Destination Version):这标识了目标工作负载的版本,或者如果目标信息丢失则为 unknown。
  • 目标服务(Destination Service):这标识负责传入请求的目标服务主机,比如:details.default.svc.cluster.local。
  • 目标服务名称(Destination Service Name):这标识了目标服务名称,例如:details。
  • 目标服务命名空间(Destination Service Namespace):标识目标服务的命名空间。
  • 请求协议(Request Protocol):标识请求的协议,它设置为请求或连接协议。
  • 响应码(Response Code):标识请求的响应码,此标签仅出现在 HTTP 指标上。
  • 连接安全策略(Connection Security Policy):标识请求的服务认证策略,当使用 Istio 确保通信安全并且报告来自目标时,它设置为 mutual_tls。当报告来自源时,它被设置为 unknown,因为无法正确填充安全策略。
  • 响应标志(Response Flags):有关来自代理的响应或连接的其他详细信息。如果是 Envoy,请参阅 Envoy 访问日志中的 %RESPONSE_FLAGS% 了解更多详细信息,见access_log
  • 规范服务(Canonical Service):一个工作负载只属于一个规范服务,但它可以属于多个服务。规范服务具有名称和修订版本,因此会产生以下标签,如 source_canonical_service、source_canonical_revision、destination_canonical_service、destination_canonical_revision 等。
  • 目标集群(Destination Cluster):标识目标工作负载的集群,这是在集群安装时通过 global.multiCluster.clusterName 设置的。
  • 源集群(Source Cluster):标识源工作负载的集群,这是在集群安装时通过 global.multiCluster.clusterName 设置的。
  • gRPC 响应状态(gRPC Response Status):标识 gRPC 的响应状态,此标签仅出现在 gRPC 指标上。

指标(Metrics)

Istio 封装 Envoy 所有的指标,可参考 envoy-attributes,Envoy 元数据对于 outbound 的 upstream_peer 与 inbound 的 downstream_peer 具备如下的字段:

FieldTypeValue
namestringName of the pod.
namespacestringNamespace that the pod runs in.
labelsmapWorkload labels.
ownerstringWorkload owner.
workload_namestringWorkload name.
platform_metadatamapPlatform metadata with prefixed keys.
istio_versionstringVersion identifier for the proxy.
mesh_idstringUnique identifier for the mesh.
app_containerslistList of short names for application containers.
cluster_idstringIdentifier for the cluster to which this workload belongs.

遥测 telemetry 组件是代理 扩展实现。COUNTER 是一个严格递增的整数,DISTRIBUTION 将值范围映射到频率。COUNTER 和 DISTRIBUTION 对应 Envoy 文档 中的指标计数器和直方图。

对于 HTTP、HTTP/2 和 GRPC 流量,Istio 有以下指标:

  • 请求计数 (istio_requests_total):Istio 代理处理的每个请求递增的计数器。
  • 请求持续时间(istio_request_duration_milliseconds):测量请求持续时间的分布。
  • 请求大小 (istio_request_bytes):测量 HTTP 请求正文大小的分布。
  • 响应大小 (istio_response_bytes):测量 HTTP 响应正文大小的分布。
  • gRPC 请求消息计数 (istio_request_messages_total):针对从客户端发送的每条 gRPC 消息而递增的计数器。
  • gRPC 响应消息计数 (istio_response_messages_total):针对从服务器发送的每条 gRPC 消息而递增的计数器。

对于 TCP 流量,Istio 有以下指标:

  • 发送的 Tcp 字节数 (istio_tcp_sent_bytes_total):测量 TCP 连接时响应期间发送的总字节数。
  • 接收的 Tcp 字节数 (istio_tcp_received_bytes_total):测量 TCP 连接时请求期间接收到的总字节数。
  • 打开的 Tcp 连接数 (istio_tcp_connections_opened_total):针对每个打开的连接递增的计数器。
  • 关闭的 Tcp 连接数 (istio_tcp_connections_angled_total):针对每个关闭的连接递增的计数器。

性能指标

经过测试,发现 istio 1.13.2 版本在 kubernetes 集群(service 1300+、CRD 1000+、Pod 1200+)规模下,Istiod 的 Proxy Push Time(pilot_proxy_convergence_time_bucket) 指标推送时长持续上升,p99 达到 30s+,如下所示:

控制平面

以下是 Istio 1.16.5 版本为基础梳理的控制平面与数据平面核心指标。

名称描述
istiod_running_statusistiod 运行状态异常
istiod_mem_usage_rateistiod 内存使用率
istiod_cpu_usage_rateistiod CPU 使用率
controller_sync_errors_totalistiod controller 启动失败次数
istio_agent_num_outgoing_retriesistio-agent 携带 k8s jwt token 访问 istiod 获取证书,如果 jwt 验证失败,该指标会增加
pilot_eds_no_instances没有 ep 的服务数量
pilot_vservice_dup_domain具有相同 host 的 VirtualService 数量
pilot_total_rejected_configs被拒绝或忽略的配置总数
pilot_envoy_filter_statusenvoyfilter 状态
pilot_jwks_resolver_network_fetch_fail_totalPilot 引导 jwks 解析器获取网络失败的总数
pilot_total_xds_rejectsPilot 被代理拒绝响应的 XDS 总数
pilot_xds_delayed_pushes_total延迟的 XDS 推送总数
pilot_xds_write_timeoutPilot 响应 XDS 超时次数
pilot_xds_pushesPilot 创建和下发 XDS 配置次数
pilot_xds_push_context_errorspushContext 初始化失败次数
pilot_sds_certificate_errors_total获取 SDS 密钥和证书失败的总数
pilot_total_xds_internal_errorsistiod 内部错误次数
citadel_server_root_cert_expiry_timestampCitadel root 证书将过期的 Unix 时间戳(秒)
citadel_server_cert_chain_expiry_timestampCitadel 证书链到期时间戳(秒)
citadel_server_authentication_failure_count身份验证失败的次数
citadel_server_csr_parsing_err_countCitadel 分析 CSR 时发生的错误数
citadel_server_id_extraction_err_countCitadel 从 CSR 提取 ID 时发生的错误数
citadel_server_csr_sign_err_countCitadel 签署 CSR 时发生的错误数
sidecar_injection_failure_totalsidecar 注入失败的请求总数
wasm_config_conversion_durationwasm 加载时长
istio_agent_cert_expiry_seconds证书到期前剩余的时间(秒)
per_istiod_jobup_statusistiod抓取任务是否启动

数据平面

名称描述
per_sidecar_config_conflict_statussidecar 配置冲突
per_sidecar_running_statussidecar 运行状态异常
per_sidecar_mem_usage_ratesidecar 内存使用率
per_sidecar_cpu_usage_ratesidecar CPU 使用率
instance_realtime_qps集群实时 QPS
istio_requests_total集群成功率(非5xx)
istio_request_duration_milliseconds_bucket延时(90分位,95分位,99分位)
istiod_connection_failures连接到 Istio 控制面失败总数
istiod_connection_terminations连接到 Istiod 错误总数
envoy_connection_terminationsEnvoy 连接错误的总数
webhook_patch_retries_totalWebhook patch 重试次数
webhook_patch_failures_totalWebhook patch 失败的次数
envoy_cluster_bind_errorsEnvoy 绑定 cluster 错误次数
envoy_cluster_http2_rx_messaging_error违反 HTTP/2 规范第 8 节的无效接收帧总数
webhook_cert_consistent_statusWebhook 证书是否正确
per_sidecar_istiod_connection_statussidecar 与 istiod 连接状态是否正常
istio_agent_startup_duration_secondssidecar 启动时长
envoy_cluster_http2_stream_refused_errorsEnvoy 拒绝错误次数

其他指标

我们可以在 istiod 与 istio-proxy Pod 中使用 http://localhost:port/metrics 查看其他指标,控制平面指标如下所示:

指标名称指标类型指标说明
auto_registration_deletes_totalSum定期计时器清理的自动注册总数
auto_registration_errors_totalSum自动注册出现错误的总数
auto_registration_success_totalSum成功自动注册的总数
auto_registration_unregister_totalSum注销的总数
auto_registration_updates_totalSum自动注册更新的总数
citadel_server_authentication_failure_countSum身份验证失败的次数
citadel_server_cert_chain_expiry_timestampLastValueCitadel 证书链到期时间戳(秒),负数时间表示证书已过期
citadel_server_csr_countSumCitadel 接收的 CSR 计数
citadel_server_csr_parsing_err_countSumCitadel 分析 CSR 时发生的错误数
citadel_server_csr_sign_err_countSumCitadel 签署 CSR 时发生的错误数
citadel_server_id_extraction_err_countSumCitadel 从 CSR 提取ID时发生的错误数
citadel_server_root_cert_expiry_timestampLastValueCitadel 根证书将过期的时间戳(秒)。负时间表示证书已过期
citadel_server_success_cert_issuance_countSum已成功颁发的证书数
controller_sync_errors_totalSumerrorMetric 同步控制器的总数
endpoint_no_podLastValueEndpoint 没有关联任何 pod
galley_validation_config_delete_errorCountGalley 验证 k8s webhook 配置删除错误
galley_validation_config_loadCountGalley 验证 k8s webhook 配置(重新)加载
galley_validation_config_load_errorCountGalley 验证 k8s webhook 配置(重新)加载错误
galley_validation_config_update_errorCountGalley 验证 k8s webhook配置更新错误
galley_validation_config_updatesCountGalley 验证 k8s webhook配置更新
galley_validation_failedSumGalley 资源验证失败
galley_validation_http_errorSumGalley 验证 http 服务错误
galley_validation_passedSumGalley 验证通过,资源有效
istio_buildLastValueIIstio 组件构成信息
istiod_managed_clustersLastValue控制面管理的集群数
num_outgoing_retriesSum传出的重试请求总数
pilot_conflict_inbound_listenerLastValueinbound listeners 冲突的次数
pilot_conflict_outbound_listener_http_over_current_tcpLastValue与当前 outbound TCP Listener 冲突的 HTTP Listener 总数
pilot_conflict_outbound_listener_tcp_over_current_httpLastValue与当前 outbound 的 HTTP Listener 冲突的 TCP Listener 总数
pilot_conflict_outbound_listener_tcp_over_current_tcpLastValue与当前 outbound 的 TCP Listener 冲突的 TCP Listener 总数
pilot_destrule_subsetsLastValueDestinationRules 中关于同一服务的子集配置重复
pilot_duplicate_envoy_clustersLastValue具有相同主机名的 ServiceEntriy 导致 Envoy 集群重复
pilot_eds_no_instancesLastValue没有任何实例的集群数
pilot_endpoint_not_readyLastValueEndpoint 处于未就绪状态
pilot_inbound_updatesSumPilot 接收到 inbound 的更新的总数
pilot_jwks_resolver_network_fetch_fail_totalSumPilot 引导 jwks 解析器获取网络失败的总数
pilot_jwks_resolver_network_fetch_success_totalSumPilot 引导 jwks 解析器获取网络成功的总数
pilot_k8s_cfg_eventsSumK8s 配置中发生的事件
pilot_k8s_endpoints_pending_podLastValue当前没有任何 pod 关联的 Endpoint 的数量
pilot_k8s_endpoints_with_no_podsSum没有关联任何 pod 的 Endpoint
pilot_k8s_reg_eventsSumk8s注册表中的事件
pilot_no_ipLastValue在 Endpoint 表中找不到 Pod
pilot_proxy_convergence_timeDistribution配置更改和代理接收所有必需配置之间的延迟(秒)
pilot_proxy_queue_timeDistribution代理在退出队列之前处于推送队列中的时间(秒)
pilot_push_triggersSum触发推送的总次数,按推送原因标记
pilot_pushcontext_init_secondsDistributionPilot 初始化 pushContext 所需的总时间(秒)
pilot_sds_certificate_errors_totalSum获取 SDS 密钥和证书失败的总数
pilot_servicesLastValuePilot 已知的服务数
pilot_total_rejected_configsSumPilot 拒绝或忽略的配置总数
pilot_total_xds_internal_errorsSumPilot 中 XDS 内部错误总数
pilot_total_xds_rejectsSumPilot 被代理拒绝响应的 XDS 总数
pilot_virt_servicesLastValuePilot 已知的 VirtualService 总数
pilot_vservice_dup_domainLastValue具有重复数据的 VirtualService
pilot_xdsLastValue连接到 Pilot 此 XDS 的 Endpoint 数量
pilot_xds_cds_rejectLastValuePilot 拒绝的 CDS 数量
pilot_xds_config_size_bytesDistribution推送 xds 的配置大小
pilot_xds_delayed_push_timeouts_totalSum延迟和超时的 XDS 推送总数
pilot_xds_delayed_pushes_totalSum延迟的 XDS 推送总数
pilot_xds_eds_rejectLastValuePilot 拒绝的EDS。e即endpoint,eds用于动态发现服务 Endpoint
pilot_xds_expired_nonceSum过期的XDS请求总数
pilot_xds_lds_rejectLastValuepilot 拒绝 LDS 的配置。DS即discovery service,服务发现。envoy的监听端口,lds用于动态发现envoy需要监听哪些端口
pilot_xds_push_context_errorsSum推送 XDS 配置的错误数
pilot_xds_push_timeDistributionpilot 获取 XDS 配置所需要的时间(秒)
pilot_xds_pushesSumPilot 创建和下发 XDS 配置出现错误
pilot_xds_rds_rejectLastValuePilot 拒绝 RDS配置。R即路由,rds用于发现路由配置
pilot_xds_send_timeDistributionPilot 生成和下发配置所需要的时间 (秒)
pilot_xds_write_timeoutSumPilot 响应 XDS 超时
remote_cluster_sync_timeouts_totalSum远程集群同步花费的时间太长,导致启动缓慢的次数(不包括远程集群)
scrape_failures_totalSum失败的 scrapes 总数
scrapes_totalSumscrapes 的总数
sidecar_injection_failure_totalSumsidecar 注入失败的请求总数
sidecar_injection_requests_totalSumsidecar 注入的请求总数
sidecar_injection_skip_totalSum跳过 sidecar 注入请求总数
sidecar_injection_success_totalSumsidecar 成功注入的请求总数
startup_duration_secondsLastValue进程启动后标记就绪时间
wasm_cache_entriesLastValueWasm 获取的远端缓存的 Entry 数量
wasm_cache_lookup_countSumWasm 获取远端缓存的查找数
wasm_config_conversion_countSumWasm 配置转换计数和结果的数目,包括成功、无远程加载、封送失败、远程获取失败、未命中远程获取提示
wasm_config_conversion_durationDistributionistio-agent 在 Wasm 配置中转换远程负载所花费的总时间(毫秒)
wasm_remote_fetch_countSumWasm 远程获取的次数和结果,包括成功、下载失败和校验和不匹配
webhook_patch_attempts_totalSumWebhook 尝试修补
webhook_patch_failures_totalSumWebhook 修补失败次数
webhook_patch_retries_totalSumWebhook 修补重试次数
xds_cache_dependent_config_sizeLastValue当前 XDS 缓存配置依赖的大小
xds_cache_evictionsSumXDS 缓存回收的总数
xds_cache_readsSumXDS 缓存读取的总数
xds_cache_sizeLastValue当前 XDS 缓存大小

数据平面指标如下所示:

指标名称指标类型指标说明
auto_registration_deletes_totalSum周期性清理的自动注册的总数
auto_registration_errors_totalSum自动注册错误的总数
auto_registration_success_totalSum自动注册成功的总数
auto_registration_unregister_totalSum未自动注册的总数
auto_registration_updates_totalSum自动注册更新的总数
controller_sync_errors_totalSumerrorMetric 同步控制器的总数
endpoint_no_podLastValueEndpoint 没有关联任何 pod
envoy_connection_terminationsSumEnvoy 连接错误的总数
istio_buildLastValueIstio 组件构成信息
istiod_connection_failuresSum连接到 Istio 控制面失败总数
istiod_connection_terminationsSum连接到 Istio 控制面错误总数
istiod_managed_clustersLastValue控制面管理的集群数
num_failed_outgoing_requestsSum传出失败的请求数(例如 token 交换或者对接 CA)
num_file_secret_failures_totalSumSecret 文件生成失败总次数
num_file_watcher_failures_totalSum未能添加监控程序的文件的总数
num_outgoing_requestsSum传出的请求总数
num_outgoing_retriesSum传出的重试请求总数
outgoing_latencySum传出请求的延迟(毫秒)
pilot_conflict_inbound_listenerLastValue冲突的 inbound listener
pilot_conflict_outbound_listener_http_over_current_tcpLastValue与当前 outbound TCP Listener 冲突的 HTTP Listener 总数
pilot_conflict_outbound_listener_tcp_over_current_httpLastValue与当前 outbound 的 HTTP Listener 冲突的 TCP Listener 总数
pilot_conflict_outbound_listener_tcp_over_current_tcpLastValue与当前 outbound 的 TCP Listener 冲突的 TCP Listener 总数
pilot_destrule_subsetsLastValueDestinationRules 中关于同一服务的子集配置重复
pilot_duplicate_envoy_clustersLastValue具有相同主机名的 ServiceEntriy 导致 Envoy 集群重复
pilot_eds_no_instancesLastValue没有任何实例的集群数
pilot_endpoint_not_readyLastValueEndpoint 处于未就绪状态
pilot_inbound_updatesSumPilot 接收到 inbound 的更新的总数
pilot_jwks_resolver_network_fetch_fail_totalSumPilot 引导 jwks 解析器获取网络失败的总数
pilot_jwks_resolver_network_fetch_success_totalSumPilot 引导 jwks 解析器获取网络成功的总数
pilot_k8s_cfg_eventsSumK8s 配置中发生的事件
pilot_k8s_endpoints_pending_podLastValue当前没有对应 pod 的 endpoint 个数
pilot_k8s_endpoints_with_no_podsSum没有对应 pod 的 endpoint 个数,已废弃
pilot_k8s_reg_eventsSum注册的 k8s handler 个数,维度包括 add、updatesame、update 等
pilot_no_ipLastValue没有对应服务代理 id。理论上这个指标不会有值?
pilot_proxy_convergence_timeDistribution配置变更后到代理接收到配置的耗时
pilot_proxy_queue_timeDistribution推送开始后到真正出队处理的耗时
pilot_push_triggersSum触发推送 xds 的次数,包括维度:Endpoint 更新、配置更新、服务更新等
pilot_pushcontext_init_secondsDistribution初始化 pushContext 的耗时
pilot_sds_certificate_errors_totalSum推送 xds 时获取 sds key 和证书失败的次数
pilot_servicesLastValue控制面感知到的服务数量
pilot_total_rejected_configsSum当指向同一负载有多个网关时,需进行合并,合并过程中配置被拒绝的次数
pilot_total_xds_internal_errorsSum接收或移除连接时出错的次数
pilot_total_xds_rejectsSum对于服务发现 request 无需响应 xds 的次数
pilot_virt_servicesLastValue当前 vs 总数
pilot_vservice_dup_domainLastValue构建 sidecar outbound 时,由于重复 hostname 而被拒绝的 vs 数量
pilot_xdsLastValue连接控制面的 envoy 数量
pilot_xds_cds_rejectLastValue对于服务发现 request 无需响应 cds 的次数
pilot_xds_config_size_bytesDistribution推送 xds 的配置大小
pilot_xds_delayed_push_timeouts_totalSum推送 xds 过早或死锁造成的超时次数哦。
pilot_xds_delayed_pushes_totalSum推送 xds 延迟的个数。
pilot_xds_eds_rejectLastValue对于服务发现 request 无需响应 eds 的次数
pilot_xds_expired_nonceSum服务发现 request 携带过期的 nonce 的个数
pilot_xds_lds_rejectLastValue对于服务发现 request 无需响应 lds 的次数
pilot_xds_push_context_errorsSum初始化 push context 失败次数
pilot_xds_push_timeDistribution推送 xds 的耗时,实时变化,包括维度 lds、rds、cds、eds
pilot_xds_pushesSum推送 xds 失败的次数,包括 cds、eds、lds、rds
pilot_xds_rds_rejectLastValue对 服务发现 request 无需响应 rds 的次数
pilot_xds_send_timeDistribution推送 xds 耗时
pilot_xds_write_timeoutSum推送 xds 超时次数
remote_cluster_sync_timeouts_totalSum启动远程集群的 informer,并等待缓存同步的超时次数
scrape_failures_totalSum采集指标失败次数,包括 envoy、app、agent
scrapes_totalSum指标采集总次数
sidecar_injection_failure_totalSummutating webhook 注入 sidecar 失败的数量
sidecar_injection_requests_totalSummutating webhook 注入 sidecar 的请求数
sidecar_injection_skip_totalSum策略检查后跳过 sidecar 注入的数量
sidecar_injection_success_totalSumsidecar 注入成功数
startup_duration_secondsLastValueagent 启动耗时。依赖健康检查探针,因此与探活周期相关
wasm_cache_entriesLastValuewasm 缓存中 wasm module 的数量
wasm_cache_lookup_countSumwasm 缓存命中数
wasm_config_conversion_countSum从远程下载的 wasm module 尝试转换成本地文件的数量
wasm_config_conversion_durationDistribution远程下载的 wasm module 转换成本地文件的耗时
wasm_remote_fetch_countSum从远程下载的 wasm module 数量,包括维度成功、失败、校验和不匹配等
webhook_patch_attempts_totalSumwebhook 尝试 patch 的次数
webhook_patch_failures_totalSumwebhook patch 失败的次数
webhook_patch_retries_totalSumwebhook patch 失败后重试的次数
xds_cache_dependent_config_sizeLastValue当前依赖配置的大小,包括 cluster、route、eds、sds等
xds_cache_evictionsSumxds 缓存驱逐的总数,包括维度:clear、size
xds_cache_readsSumxds 缓存 xdsCacheReads 的总数,包括维度:hit、miss
xds_cache_sizeLastValuexds 缓存大小
xds_proxy_requestsSum下游发起请求的总数
xds_proxy_responsesSum上游响应总数

参考

  1. https://istio.io/latest/docs/tasks/observability/metrics/
  2. https://istio.io/latest/docs/ops/configuration/telemetry/
  3. https://istio.io/latest/docs/ops/configuration/telemetry/envoy-stats/
  4. https://istio.io/latest/docs/tasks/observability/metrics/querying-metrics/
  5. https://istio.io/latest/docs/tasks/observability/metrics/using-istio-dashboard/